
Cloudflare-nÀtverket hanterar över en miljard unika IP-adresser varje dag, hanterar över 11 miljoner HTTP-förfrÄgningar per sekund och nÄr 100 % av internetbefolkningen inom 95 ms. VÄrt nÀtverk strÀcker sig över 200 stÀder i över 90 lÀnder, och vÄrt ingenjörsteam har byggt en otroligt snabb och pÄlitlig infrastruktur.
Vi Àr mycket stolta över vÄrt arbete och Àr engagerade i att bidra till att göra internet till en bÀttre och sÀkrare plats. Cloudflares hÄrdvaruingenjörer har djupgÄende förstÄelse för servrar och deras komponenter för att förstÄ och vÀlja den bÀsta hÄrdvaran för att maximera dess effektivitet.
VÄr programvarustack hanterar tung berÀkning och Àr mycket CPU-intensiv, vilket krÀver att vÄra ingenjörer kontinuerligt optimerar Cloudflares effektivitet och tillförlitlighet pÄ alla lager i stacken. PÄ serversidan Àr det enklaste sÀttet att öka processorkraften att lÀgga till CPU-kÀrnor. Ju fler kÀrnor du kan fÄ plats med i en server, desto mer data kan den bearbeta. Detta Àr viktigt för oss eftersom vÄra produkter och kunder har vuxit över tid, och det vÀxande antalet förfrÄgningar krÀver att vÄra servrar blir kraftfullare. För att öka deras prestanda behövde vi öka deras kÀrntÀthet, och det Àr precis vad vi har Ästadkommit. HÀr Àr en sammanfattning av processordata för de servrar vi har driftsatt sedan 2015, inklusive antalet kÀrnor:
-
Gen 6
Gen 7
Gen 8
Gen 9
Komma igÄng
2015
2016
2017
2018
CPU
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Intel Xeon Silver 4116
Intel Xeon Platinum 6162
Fysiska kÀrnor
X 2 8
X 2 10
X 2 12
X 2 24
TDP
2 x 85W
2 x 85W
2 x 85W
2 x 150W
TDP per kÀrna
10.65W
8.50W
7.08W
6.25W
à r 2018 gjorde vi ett stort sprÄng i det totala antalet kÀrnor per server med Gen 9. MiljöpÄverkan minskade med 33 % jÀmfört med Gen 8, vilket gjorde det möjligt för oss att öka volymen och berÀkningskraften per rack. Termiska designkrav (, TDP) nÀmns för att belysa att vÄr energieffektivitet ocksÄ har förbÀttrats över tid. Detta mÄtt Àr viktigt för oss: för det första vill vi slÀppa ut mindre koldioxid i atmosfÀren; för det andra vill vi utnyttja energin i vÄra datacenter pÄ bÀsta sÀtt. Men vi vet att vi har en del utrymme för förbÀttringar.
VÄrt viktigaste mÀtvÀrde Àr förfrÄgningar per watt. Vi kan öka förfrÄgningar per sekund genom att lÀgga till kÀrnor, men vi mÄste hÄlla oss inom vÄr energibudget. Vi begrÀnsas av datacentrens energiinfrastruktur, vilket tillsammans med vÄra valda strömfördelningsmoduler ger oss en viss övre grÀns för varje serverrack. Att lÀgga till servrar i ett rack ökar energiförbrukningen. Driftskostnaderna ökar avsevÀrt om vi överskrider energigrÀnsen per rack och mÄste lÀgga till fler rack. Vi mÄste öka berÀkningskraften samtidigt som vi hÄller oss inom samma energibudget, vilket ökar förfrÄgningar per watt, vÄrt viktigaste mÀtvÀrde.
Som ni kanske gissat tittade vi mycket noggrant pĂ„ strömförbrukningen under designfasen. Av tabellen ovan kan vi se att vi inte vill slösa tid pĂ„ att driftsĂ€tta fler strömslukande processorer om TDP per kĂ€rna Ă€r högre Ă€n den nuvarande generationens â det kommer att pĂ„verka vĂ„rt mĂ€tvĂ€rde, förfrĂ„gningar per watt, negativt. Vi tittade noga pĂ„ produktionssystemen för vĂ„r X-generation som finns pĂ„ marknaden och fattade ett beslut. Vi gĂ„r frĂ„n vĂ„r 48-kĂ€rniga Intel Xeon Platinum 6162-design med dubbla socklar till den 48-kĂ€rniga AMD EPYC 7642-designen med en sockel.

-
Intel
AMD
CPU
Xeon Platinum 6162
EPYC 7642
mikroarkitektur
"Skylake"
"Zen 2"
Kodnamn
"Skylake SP"
"Rom"
Teknisk process
14nm
7nm
KĂ€rna
X 2 24
48
frekvens
1.9 GHz
2.4 GHz
L3-cache/socket
24 x 1.375 MB
16 x 16 MB
Minne / sockel
6 kanaler, upp till DDR4-2400
8 kanaler, upp till DDR4-3200
TDP
2 x 150W
225W
PCIe/sockel
48 körfÀlt
128 körfÀlt
ISA
x86-64
x86-64
UtifrÄn specifikationerna Àr det tydligt att AMD-chippet kommer att lÄta oss behÄlla samma antal kÀrnor, samtidigt som TDP:n sÀnks. Den 9:e generationen hade en TDP per kÀrna pÄ 6,25 W, medan den X:e generationen kommer att ha 4,69 W. En minskning med 25 %. Med den ökade frekvensen, och kanske en enklare design med en enda sockel, kan vi anta att AMD-chippet kommer att prestera bÀttre i aktion. För nÀrvarande kör vi olika tester och simuleringar för att se hur mycket bÀttre AMD kommer att prestera.
LÄt oss för tillfÀllet notera att TDP Àr ett förenklat mÄtt frÄn tillverkarens specifikationer som vi anvÀnde i de tidiga stadierna av serverdesign och CPU-val. En snabb Google-sökning visar att AMD och Intel har olika metoder för att definiera TDP, vilket gör denna specifikation opÄlitlig. CPU:ns faktiska strömförbrukning, och Ànnu viktigare, serverns strömförbrukning, Àr vad vi faktiskt anvÀnder nÀr vi fattar vÄra slutgiltiga beslut.
Ekosystemberedskap
I början av vĂ„r resa mot att vĂ€lja vĂ„r nĂ€sta processor tittade vi pĂ„ ett brett utbud av processorer frĂ„n olika leverantörer som passade bra för vĂ„r programvaruuppsĂ€ttning och vĂ„ra tjĂ€nster (skrivna i C, LuaJIT och Go). Vi har redan gĂ„tt igenom verktygslĂ„dan för hastighetsmĂ€tning i detalj. I det hĂ€r fallet anvĂ€nde vi samma uppsĂ€ttning â den lĂ„ter oss utvĂ€rdera processorns effektivitet inom rimlig tid, varefter vĂ„ra ingenjörer kan börja anpassa vĂ„ra program till en specifik processor.
Vi testade en mÀngd olika processorer med olika antal kÀrnor, socklar och klockhastigheter. Eftersom den hÀr artikeln beskriver varför vi valde AMD EPYC 7642, fokuserar alla diagram i den hÀr bloggen pÄ hur AMD-processorer presterar jÀmfört med Intel Xeon Platinum 6162 frÄn ... .
Resultaten motsvarar mĂ€tningar pĂ„ en server som kör vart och ett av processoralternativen â det vill sĂ€ga med tvĂ„ 24-kĂ€rniga Intel-processorer eller en 48-kĂ€rnig AMD-processor (en Intel-server med dubbla socklar och en AMD EPYC-server med en sockel). Vi stĂ€ller in BIOS pĂ„ de parametrar som motsvarar de servrar som körs. Detta Ă€r 3,03 GHz för AMD och 2,5 GHz för Intel. För att förenkla det förvĂ€ntar vi oss att AMD med samma antal kĂ€rnor kommer att visa resultat som Ă€r 21 % bĂ€ttre Ă€n Intel.
Kryptografi


Ser lovande ut för AMD. Den presterar 18 % bÀttre pÄ kryptografi med publika nyckelr. Den förlorar pÄ symmetrisk nyckelkryptografi för AES-128-GCM-varianter, men överlag presterar den jÀmförbart.
kompression
PÄ edge-servrar komprimerar vi mycket data för att spara bandbredd och öka hastigheten pÄ innehÄllsleveransen. Vi skickar data genom C-biblioteken zlib och brotli. Alla tester utfördes pÄ HTML-filen blog.cloudflare.com i minnet.


AMD vinner med 29% i genomsnitt nĂ€r de anvĂ€nder gzip. Brotli gör det Ă€nnu bĂ€ttre, med kvalitet 7, vilket Ă€r den vi anvĂ€nder för dynamisk komprimering. Det finns en kraftig nedgĂ„ng i Brotli-9-testet, vilket vi tillskriver att Brotli Ă€r vĂ€ldigt minneskrĂ€vande och fyller upp cachen. ĂndĂ„ vinner AMD med god marginal.
MÄnga av vÄra tjÀnster Àr skrivna i Go. I följande grafer testar vi kryptografin och komprimeringshastigheten i Go med RegExp pÄ 32 KB-strÀngar med hjÀlp av strÀngbiblioteket.
GĂ„ kryptografi

GĂ„ kompression


GĂ„ till regexp


Go Strings

AMD presterar bĂ€ttre i alla Go-tester förutom ECDSA P256 Sign, dĂ€r de ligger efter med 38 % â vilket Ă€r mĂ€rkligt med tanke pĂ„ att de presterade 24 % bĂ€ttre i C. Det Ă€r vĂ€rt att undersöka vad som hĂ€nder dĂ€r. Sammantaget vinner AMD inte med mycket, men de presterar fortfarande bĂ€ttre.
LuaJIT
Vi anvÀnder LuaJIT mycket i stacken. Det Àr limmet som hÄller ihop alla delar av Cloudflare. Och vi Àr glada att AMD vann Àven hÀr.
Sammantaget visar testerna att EPYC 7642 presterar bĂ€ttre Ă€n de tvĂ„ Xeon Platinum 6162:orna. AMD förlorar pĂ„ ett par tester â till exempel AES-128-GCM och Go OpenSSL ECDSA-P256 Sign â men vinner pĂ„ alla de andra, med i genomsnitt 25 %.
Simulering av arbetsbelastning
Efter vÄra expresstester körde vi servrarna genom ytterligare en uppsÀttning simuleringar som tillÀmpar en syntetisk belastning pÄ programvarukantstacken. HÀr simulerar vi arbetsbelastningen för scenarier med olika typer av förfrÄgningar som du kan se i produktion. FörfrÄgningarna varierar i datastorlek, HTTP- eller HTTPS-protokoll, WAF-kÀllor, arbetare och mÄnga andra variabler. Nedan följer en jÀmförelse av dataflödet för de tvÄ processorerna för de typer av förfrÄgningar som vi ser oftast.

Resultaten i diagrammet mĂ€ts med hjĂ€lp av baslinjemodellerna för 9:e generationens Intel-maskiner, normaliserade till 1,0 pĂ„ x-axeln. Om vi ââtill exempel tar enkla HTTPS-förfrĂ„gningar pĂ„ 10 KiB kan vi se att AMD presterar 1,5 gĂ„nger bĂ€ttre Ă€n Intel i förfrĂ„gningar per sekund. I genomsnitt presterade AMD 34 % bĂ€ttre Ă€n Intel för de visade testerna. Med tanke pĂ„ att TDP:n för en enda AMD EPYC 7642 Ă€r 225 W, och för tvĂ„ Intel-processorer Ă€r den 300 W, visar det sig att AMD presterar dubbelt sĂ„ mycket som Intel i "förfrĂ„gningar per watt"!
Vid det hÀr laget lutade vi redan tydligt Ät ett alternativ med en enda sockel för AMD EPYC 7642 som vÄr framtida Gen X-processor. Vi var vÀldigt nyfikna pÄ att se hur AMD EPYC-servrar skulle prestera i verklig anvÀndning, och vi skickade omedelbart nÄgra servrar till nÄgra av vÄra datacenter.
Riktigt arbete
Det första steget var naturligtvis att förbereda servrarna för verklig anvÀndning. Alla maskiner i vÄr flotta kör samma processer och tjÀnster, vilket ger oss en utmÀrkt möjlighet att exakt jÀmföra prestanda. Liksom de flesta datacenter har vi flera generationer av servrar driftsatta, och vi klustrar vÄra servrar sÄ att varje klass innehÄller servrar av ungefÀr samma generation. I vissa fall kan detta resultera i att utnyttjandekurvorna skiljer sig mellan klustren. Men inte i vÄrt. VÄra ingenjörer har optimerat CPU-utnyttjandet över alla generationer sÄ att oavsett om en viss maskin har 8 kÀrnor eller 24, sÄ skiljer sig CPU-utnyttjandet i allmÀnhet inte frÄn resten.

Diagrammet illustrerar vĂ„r kommentar om likheten i anvĂ€ndningen â det finns ingen signifikant skillnad mellan AMD CPU-anvĂ€ndningen i Gen X-servrar och Intel CPU-anvĂ€ndningen i Gen 9-servrar. Det betyder att bĂ„de test- och basservrarna Ă€r lika belastade. Toppen. Det hĂ€r Ă€r precis vad vi letar efter i vĂ„ra servrar, och det hĂ€r Ă€r vad vi behöver för en rĂ€ttvis jĂ€mförelse. De tvĂ„ diagrammen nedan visar antalet förfrĂ„gningar som bearbetats av en CPU-kĂ€rna och alla kĂ€rnor pĂ„ servernivĂ„.

FörfrÄgningar per kÀrna

FörfrÄgningar till servern
Det Àr tydligt att AMD bearbetar 23 % fler förfrÄgningar i genomsnitt. Inte alls illa! Vi har ofta skrivit om sÀtt att öka prestandan för Gen 9 i vÄr blogg. Och hÀr har vi samma antal kÀrnor, men AMD gör mer arbete med mindre energiförbrukning. Det Àr omedelbart tydligt frÄn specifikationerna för antal kÀrnor och TDP att AMD levererar högre hastighet med större energieffektivitet.
Men som vi nÀmnde Àr TDP inte en standardspecifikation och Àr inte densamma för alla tillverkare, sÄ lÄt oss titta pÄ den faktiska strömförbrukningen. Genom att mÀta serverns strömförbrukning parallellt med antalet förfrÄgningar per sekund fÄr vi följande graf:

NÀr det gÀller RPS per watt Àr den AMD-drivna Gen X-servern 28 % effektivare. Man kan förvÀnta sig mer, med tanke pÄ att AMD har en 25 % lÀgre TDP, men kom ihÄg att TDP Àr en knepig sak. Vi har sett att AMDs faktiska strömförbrukning nÀstan exakt matchar den angivna TDP:n vid klockfrekvenser lÄngt över basklockan; Intel har inte det. Det Àr ytterligare en anledning till att TDP inte Àr en tillförlitlig uppskattning av strömförbrukningen. Intel-processorerna i vÄra Gen 9-servrar Àr integrerade i ett system med flera noder, medan AMD-processorerna sitter i vanliga 1U-servrar. Det Àr inte till AMDs fördel, eftersom servrar med flera noder ska ge högre densitet med lÀgre strömförbrukning per nod, men AMD slÄr fortfarande Intel i strömförbrukning per nod.
I de flesta jÀmförelser mellan specifikationer, simuleringstester och verkliga prestanda presterar 1P AMD EPYC 7642-konfigurationen betydligt bÀttre Àn 2P Intel Xeon 6162. Under vissa förhÄllanden kan AMD prestera upp till 36 % bÀttre, och vi tror att vi med hÄrdvaru- och mjukvaruoptimeringar kan uppnÄ denna förbÀttring pÄ en konsekvent basis.
SĂ„ det visade sig att AMD vann.
De ytterligare graferna visar den genomsnittliga och p99-latensen för NGINX över en 24-timmarsperiod. I genomsnitt var processer pĂ„ AMD 25 % snabbare. PĂ„ p99 var det 20â50 % snabbare beroende pĂ„ tid pĂ„ dygnet.
Slutsats
HÄrdvaru- och prestandaingenjörer pÄ Cloudflare gör mycket testning och forskning för att vÀlja de bÀsta serverkonfigurationerna för vÄra kunder. Vi Àlskar att arbeta hÀr eftersom vi fÄr lösa dessa stora problem, och vi hjÀlper dig att lösa dina med tjÀnster som serverlös edge computing och en rad sÀkerhetslösningar som Magic Transit, Argo Tunnel och DDoS-skydd. Varje server i Cloudflare-nÀtverket Àr finjusterad för tillförlitlighet, och vi försöker alltid göra varje generation av servrar bÀttre Àn den förra. Vi tror att AMD EPYC 7642 Àr svaret pÄ frÄgan om Gen X-processorer.
Med Cloudflare Workers kan utvecklare driftsÀtta sina applikationer i vÄrt vÀxande nÀtverk runt om i vÀrlden. Vi Àr stolta över att lÄta vÄra kunder fokusera pÄ att skriva kod medan vi hÄller saker sÀkra och tillförlitliga i molnet. Och idag Àr vi Ànnu mer glada att kunna meddela att deras arbete kommer att driftsÀttas pÄ vÄra Gen X-servrar som drivs av andra generationens AMD EPYC-processorer.

EPYC 7642-processorer, kodnamn "Rom" [Rom]
Genom att anvÀnda EPYC 7642 frÄn AMD kunde vi öka vÄr prestanda och underlÀtta utbyggnaden av nÀtverket till nya stÀder. Rom byggdes inte pÄ en dag, men det kommer snart att vara nÀrmare mÄnga av er.
Under de senaste Ă„ren har vi experimenterat med mĂ„nga x86-chip frĂ„n Intel och AMD, samt processorer frĂ„n ARM. Vi förvĂ€ntar oss att dessa processortillverkare kommer att fortsĂ€tta arbeta med oss ââi framtiden sĂ„ att vi alla kan bygga ett bĂ€ttre internet.
KĂ€lla: will.com
