Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Mer än en miljard unika IP-adresser passerar genom Cloudflare-nätverket varje dag; den betjänar mer än 11 ​​miljoner HTTP-förfrågningar per sekund; hon är inom 100 ms från 95 % av internetbefolkningen. Vårt nätverk spänner över 200 städer i över 90 länder, och vårt team av ingenjörer har byggt en extremt snabb och pålitlig infrastruktur.

Vi är mycket stolta över vårt arbete och är engagerade i att hjälpa till att göra Internet till en bättre och säkrare plats. Cloudflares hårdvaruingenjörer har en djup 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 prestanda.

Vår mjukvarustack hanterar högbelastningsberäkningar och är mycket CPU-beroende, vilket kräver att våra ingenjörer kontinuerligt optimerar Cloudflares effektivitet och tillförlitlighet på alla nivåer i stacken. På serversidan är det enklaste sättet att öka processorkraften genom att lägga till CPU-kärnor. Ju fler kärnor en server får plats, desto mer data kan den bearbeta. Detta är viktigt för oss eftersom utbudet av våra produkter och kunder växer över tiden, och ökningen av förfrågningar kräver ökad prestanda från servrar. För att öka deras prestanda behövde vi öka densiteten på kärnorna - och det är precis vad vi åstadkom. Nedan tillhandahåller vi detaljerad information om processorer för servrar som vi har distribuerat 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

Under 2018 gjorde vi ett stort steg i det totala antalet kärnor per server med Gen 9. Miljöpåverkan har minskat med 33 % jämfört med 8:e generationen, vilket ger oss möjlighet att öka volymen och datorkraften per rack. Designkrav för värmeavledning (Termisk designkraft, TDP) nämns för att markera att vår energieffektivitet också har ökat över tiden. Denna indikator är viktig för oss: för det första vill vi släppa ut mindre kol i atmosfären; för det andra vill vi utnyttja energin från datacentren på bästa sätt. Men vi vet att vi har något att sträva efter.

Vårt huvudsakliga definierande mått är antalet förfrågningar per watt. Vi kan öka antalet 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 datacentrets kraftinfrastruktur, som tillsammans med våra utvalda kraftdistributionsmoduler ger oss en viss övre gräns för varje serverrack. Att lägga till servrar i ett rack ökar strömförbrukningen. Driftkostnaderna kommer att öka avsevärt om vi överskrider energigränsen per rack och måste lägga till nya rack. Vi måste öka processorkraften samtidigt som vi håller oss inom samma strömförbrukningsområde, vilket kommer att öka förfrågningar per watt, vårt nyckelmått.

Som du kanske har gissat studerade vi energiförbrukningen noggrant på designstadiet. Tabellen ovan visar att vi inte bör slösa tid på att distribuera fler energikrävande processorer om TDP per kärna är högre än den nuvarande generationen - detta kommer att negativt påverka vårt mått, förfrågningar per watt. Vi studerade noggrant de färdiga systemen för vår generation X på marknaden och tog ett beslut. Vi går från vår 48-kärniga Intel Xeon Platinum 6162 design med dubbla sockel till en 48-kärnig AMD EPYC 7642 enkelsocket design.

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

-
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/uttag
6 kanaler, upp till DDR4-2400
8 kanaler, upp till DDR4-3200

TDP
2 x 150W
225W

PCIe/socket
48 körfält
128 körfält

ISA
x86-64
x86-64

Från specifikationerna är det tydligt att chippet från AMD kommer att tillåta oss att behålla samma antal kärnor samtidigt som TDP sänks. Den 9:e generationen hade en TDP per kärna på 6,25 W, och den X:e generationen kommer att vara 4,69 W. Minskade med 25 %. Tack vare den ökade frekvensen, och kanske en enklare design med ett uttag, kan man anta att AMD-chippet kommer att prestera bättre i praktiken. Vi kör för närvarande olika tester och simuleringar för att se hur mycket bättre AMD kommer att prestera.

För nu, låt oss 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 avslöjar att AMD och Intel har olika tillvägagångssätt för att definiera TDP, vilket gör specifikationen opålitlig. Verklig CPU-strömförbrukning, och ännu viktigare serverströmförbrukning, är vad vi verkligen använder när vi fattar vårt slutliga beslut.

Ekosystemberedskap

För att börja vår resa mot att välja vår nästa processor tittade vi på ett brett utbud av processorer från olika tillverkare som passade bra för vår mjukvarustack och tjänster (skrivna i C, LuaJIT och Go). Vi har redan beskrivit i detalj en uppsättning verktyg för att mäta hastighet i en av våra bloggartiklar. I det här fallet använde vi samma uppsättning - det gör att vi kan utvärdera effektiviteten hos CPU:n 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 en mängd olika kärnantal, socketantal och frekvenser. Eftersom den här artikeln handlar om varför vi bestämde oss för AMD EPYC 7642, fokuserar alla diagram i denna blogg på hur AMD-processorer presterar jämfört med Intel Xeon Platinum 6162 från vår 9:e generation.

Resultaten motsvarar mätningar av en enda server med varje processorvariant - det vill säga med två 24-kärniga processorer från Intel, eller med en 48-kärnig processor från AMD (server för Intel med två sockets och server för AMD EPYC med en) . I BIOS ställer vi in ​​parametrarna som motsvarar de körande servrarna. Detta är 3,03 GHz för AMD och 2,5 GHz för Intel. För att förenkla kraftigt förväntar vi oss att med samma antal kärnor kommer AMD att prestera 21 % bättre än Intel.

Kryptografi

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Ser lovande ut för AMD. Den presterar 18 % bättre på kryptografi med publik nyckel. Med en symmetrisk nyckel förlorar den för AES-128-GCM-krypteringsalternativen, men fungerar totalt sett jämförbar.

kompression

På edge-servrar komprimerar vi mycket data för att spara på bandbredd och öka hastigheten på innehållsleveransen. Vi skickar data genom C-biblioteken zlib och brotli. Alla tester kördes på blog.cloudflare.com HTML-fil i minnet.

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

AMD vann med i snitt 29% när man använde gzip. När det gäller brotli är resultaten ännu bättre på tester med kvalitet 7, som vi använder för dynamisk komprimering. På brotli-9-testet är det ett kraftigt fall - vi förklarar detta med att Brotli förbrukar mycket minne och svämmar över cachen. AMD vinner dock med stor marginal.

Många av våra tjänster är skrivna i Go. I följande grafer dubbelkollar vi hastigheten på kryptografi och komprimering i Go med RegExp på 32 KB-linjer med hjälp av strängbiblioteket.

Gå till kryptografi

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Gå till komprimering

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Gå Regexp

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Go Strings

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

AMD presterar bättre i alla tester med Go förutom ECDSA P256 Sign, där den låg 38 % efter – vilket är konstigt med tanke på att den presterade 24 % bättre i C. Det är värt att ta reda på vad som händer där. Sammantaget vinner AMD inte mycket, men visar ändå de bästa resultaten.

LuaJIT

Vi använder ofta LuaJIT på stacken. Detta ä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 två Xeon Platinum 6162. AMD förlorar på ett par tester - till exempel AES-128-GCM och Go OpenSSL ECDSA-P256 Sign - men vinner på alla andra, med ett snitt på 25 %.

Arbetsbelastningssimulering

Efter våra snabba tester körde vi servrarna genom ytterligare en uppsättning simuleringar där en syntetisk belastning appliceras på mjukvarukantstacken. Här simulerar vi en scenariearbetsbelastning med olika typer av förfrågningar som kan stötas på i verkligt arbete. Begäranden varierar i datavolym, HTTP- eller HTTPS-protokoll, WAF-källor, Workers och många andra variabler. Nedan är en jämförelse av genomströmningen av de två CPU:erna för de typer av förfrågningar som vi stöter på oftast.

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Resultaten i diagrammet mäts mot baslinjen för 9:e generationens Intel-baserade maskiner, normaliserat till ett värde av 1,0 på x-axeln. Om vi ​​till exempel tar enkla 10 KiB-förfrågningar över HTTPS kan vi se att AMD klarar sig 1,5 gånger bättre än Intel när det gäller förfrågningar per sekund. I genomsnitt presterade AMD 34 % bättre än Intel för dessa tester. Med tanke på att TDP för en enda AMD EPYC 7642 är 225 W, och för två Intel-processorer är 300 W, visar det sig att när det gäller "förfrågningar per watt" visar AMD 2 gånger bättre resultat än Intel!

Vid det här tillfället lutade vi redan tydligt mot alternativet med singelsockel för AMD EPYC 7642 som våra framtida Gen X-processorer. Vi var mycket intresserade av att se hur AMD EPYC-servrarna skulle fungera i verkligheten, och vi skickade omedelbart flera servrar till vissa från datacenter.

Riktigt arbete

Det första steget var naturligtvis att förbereda servrarna för arbete under verkliga förhållanden. Alla maskiner i vår flotta arbetar med samma processer och tjänster, vilket ger en utmärkt möjlighet att korrekt jämföra prestanda. Som de flesta datacenter har vi flera generationer av servrar utplacerade och vi samlar våra servrar i kluster så att varje klass innehåller servrar av ungefär samma generationer. I vissa fall kan detta resultera i återvinningskurvor som skiljer sig mellan kluster. Men inte hos oss. Våra ingenjörer har optimerat CPU-utnyttjandet för alla generationer så att oavsett om en viss maskins CPU har 8 kärnor eller 24, så är CPU-utnyttjandet i allmänhet detsamma som resten.

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Grafen illustrerar vår kommentar om likheten i användningen - det finns ingen signifikant skillnad mellan användningen av AMD-processorer i generationens servrar av generation X och användningen av Intel-processorer i generationens servrar av generation 9. Detta innebär att både test- och basservrar laddas lika. . Bra. Det är precis vad vi strävar efter på våra servrar, och vi behöver detta för en rättvis jämförelse. De två graferna nedan visar antalet förfrågningar som behandlas av en CPU-kärna och alla kärnor på servernivå.

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar
Förfrågningar per kärna

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar
Förfrågningar till servern

Det kan ses att AMD i genomsnitt behandlar 23 % fler förfrågningar. Inte illa alls! Vi har ofta skrivit på vår blogg om sätt att öka prestandan för Gen 9. Och nu har vi samma antal kärnor, men AMD gör mer arbete med mindre kraft. Det framgår direkt av specifikationerna för antalet kärnor och TDP att AMD ger högre hastighet med högre energieffektivitet.

Men som vi redan nämnt är TDP inte en standardspecifikation och det är inte samma för alla tillverkare, så låt oss titta på den faktiska energianvändningen. Genom att mäta serverns energiförbrukning parallellt med antalet förfrågningar per sekund fick vi följande graf:

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar

Baserat på förfrågningar per sekund per spenderad watt är Gen X-servrar som körs på AMD-processorer 28 % effektivare. Man kan förvänta sig mer med tanke på att AMD:s TDP är 25% lägre, men man bör komma ihåg att TDP är en tvetydig egenskap. Vi har sett att AMD:s faktiska strömförbrukning är nästan identisk med den angivna TDP vid frekvenser mycket högre än basen; Intel har inte det. Detta är ytterligare en anledning till att TDP inte är en tillförlitlig uppskattning av energiförbrukningen. CPU:er från Intel i våra Gen 9-servrar är integrerade i ett multi-nodsystem, medan CPU:er från AMD fungerar i standard 1U formfaktorservrar. Detta är inte till förmån för AMD, eftersom multinodservrar borde ge större densitet med mindre strömförbrukning per nod, men AMD gick ändå om Intel vad gäller strömförbrukning per nod.

I de flesta jämförelser mellan specifikationer, testsimuleringar och verkliga prestanda presterade 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 genom att optimera hårdvara och mjukvara, vi kan uppnå denna förbättring på en kontinuerlig basis.

Det visade sig att AMD vann.

Ytterligare grafer visar genomsnittlig latens och p99-latens som kör NGINX under en 24-timmarsperiod. I genomsnitt körde processer på AMD 25 % snabbare. På p99 går den 20-50% snabbare beroende på tid på dygnet.

Slutsats

Cloudflares maskinvaru- och prestandaingenjörer gör en betydande mängd tester och forskning för att fastställa den bästa serverkonfigurationen för våra kunder. Vi älskar att arbeta här eftersom vi kan lösa stora problem som dessa, och vi kan hjälpa dig att lösa dina problem med tjänster som serverlös edge computing och en rad säkerhetslösningar som Magic Transit, Argo Tunnel och DDoS-skydd. . Alla servrar i Cloudflare-nätverket är konfigurerade för att fungera tillförlitligt, och vi försöker alltid göra varje nästa generation av servrar bättre än den föregående. Vi tror att AMD EPYC 7642 är svaret när det kommer till Gen X-processorer.

Med hjälp av Cloudflare Workers distribuerar utvecklare sina applikationer på vårt expanderande nätverk runt om i världen. Vi är stolta över att låta våra kunder fokusera på att skriva kod samtidigt som vi fokuserar på säkerhet och tillförlitlighet i molnet. Och idag är vi ännu mer glada att kunna meddela att deras arbete kommer att distribueras på våra Gen X-generationsservrar som kör andra generationens AMD EPYC-processorer.

Cloudflare väljer processorer från AMD för tionde generationens edge-servrar
EPYC 7642-processorer, kodnamn "Rom" [Rom]

Genom att använda AMD:s EPYC 7642 kunde vi öka vår prestanda och göra det lättare att utöka vårt nätverk 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-chips från Intel och AMD, samt processorer från ARM. Vi förväntar oss att dessa CPU-tillverkare kommer att fortsätta arbeta med oss ​​i framtiden så att vi alla kan bygga ett bättre internet tillsammans.

Källa: will.com

Lägg en kommentar