Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Mer enn en milliard unike IP-adresser passerer gjennom Cloudflare-nettverket hver dag; den betjener mer enn 11 millioner HTTP-forespørsler per sekund; hun er innenfor 100 ms fra 95 % av internettbefolkningen. Nettverket vårt spenner over 200 byer i over 90 land, og vårt team av ingeniører har bygget en ekstremt rask og pålitelig infrastruktur.

Vi er stolte av arbeidet vårt og er forpliktet til å bidra til å gjøre Internett til et bedre og tryggere sted. Cloudflares maskinvareingeniører har en dyp forståelse av servere og deres komponenter for å forstå og velge den beste maskinvaren for å maksimere ytelsen.

Programvarestabelen vår håndterer databehandling med høy belastning og er svært CPU-avhengig, noe som krever at ingeniørene våre kontinuerlig optimerer Cloudflares effektivitet og pålitelighet på alle nivåer av stabelen. På serversiden er den enkleste måten å øke prosessorkraften ved å legge til CPU-kjerner. Jo flere kjerner en server får plass, jo mer data kan den behandle. Dette er viktig for oss fordi variasjonen av våre produkter og klienter vokser over tid, og veksten av forespørsler krever økt ytelse fra servere. For å øke ytelsen deres, trengte vi å øke tettheten til kjernene – og dette er akkurat det vi oppnådde. Nedenfor gir vi detaljerte data om prosessorer for servere som vi har distribuert siden 2015, inkludert antall kjerner:

-
Gen 6
Gen 7
Gen 8
Gen 9

Komme i gang
2015
2016
2017
2018

prosessor
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Intel Xeon Silver 4116
Intel Xeon Platinum 6162

Fysiske kjerner
2 x 8
2 x 10
2 x 12
2 x 24

TDP
2 x 85W
2 x 85W
2 x 85W
2 x 150W

TDP per kjerne
10.65W
8.50W
7.08W
6.25W

I 2018 tok vi et stort sprang i det totale antallet kjerner per server med Gen 9. Miljøpåvirkningen er redusert med 33 % sammenlignet med 8. generasjon, noe som gir oss muligheten til å øke volum og datakraft per rack. Designkrav for varmeavledning (Termisk designkraft, TDP) er nevnt for å markere at vår energieffektivitet også har økt over tid. Denne indikatoren er viktig for oss: For det første ønsker vi å slippe ut mindre karbon til atmosfæren; for det andre ønsker vi å utnytte energien fra datasentrene best mulig. Men vi vet at vi har noe å strekke oss etter.

Vår viktigste definerende beregning er antall forespørsler per watt. Vi kan øke antall forespørsler per sekund ved å legge til kjerner, men vi må holde oss innenfor strømbudsjettet vårt. Vi er begrenset av datasenterets strøminfrastruktur, som sammen med våre utvalgte strømdistribusjonsmoduler gir oss en viss øvre grense for hvert serverrack. Å legge til servere i et rack øker strømforbruket. Driftskostnadene vil øke betydelig dersom vi overskrider energigrensen per rack og må legge til nye stativer. Vi må øke prosessorkraften mens vi holder oss innenfor det samme strømforbruksområdet, noe som vil øke forespørslene per watt, vår nøkkelberegning.

Som du kanskje har gjettet, studerte vi energiforbruket nøye på designstadiet. Tabellen ovenfor viser at vi ikke bør kaste bort tid på å distribuere flere energikrevende prosessorer hvis TDP per kjerne er høyere enn den nåværende generasjonen - dette vil ha en negativ innvirkning på metrikken vår, forespørsler per watt. Vi studerte nøye de kjøreklare systemene for vår generasjon X på markedet og tok en avgjørelse. Vi går fra vår 48-kjerners Intel Xeon Platinum 6162 dual-socket-design til en 48-kjerners AMD EPYC 7642 enkelt-socket-design.

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

-
Intel
AMD

prosessor
Xeon Platinum 6162
EPYC 7642

Mikroarkitektur
"Skylake"
"Zen 2"

Kodenavn
“Skylake SP”
"Roma"

Teknisk prosess
14nm
7nm

Cellekjernen
2 x 24
48

frekvens
1.9 GHz
2.4 GHz

L3 Cache/socket
24 x 1.375 MB
16 x 16 MB

Minne/kontakt
6 kanaler, opptil DDR4-2400
8 kanaler, opptil DDR4-3200

TDP
2 x 150W
225W

PCIe/sokkel
48 baner
128 baner

ISA
x86-64
x86-64

Fra spesifikasjonene er det klart at brikken fra AMD vil tillate oss å beholde samme antall kjerner mens vi senker TDP. 9. generasjon hadde en TDP per kjerne på 6,25 W, og X. generasjon vil være på 4,69 W. Redusert med 25 %. Takket være den økte frekvensen, og kanskje et enklere design med én sokkel, kan det antas at AMD-brikken vil yte bedre i praksis. Vi kjører for tiden forskjellige tester og simuleringer for å se hvor mye bedre AMD vil prestere.

For nå, la oss merke oss at TDP er en forenklet beregning fra produsentens spesifikasjoner, som vi brukte i de tidlige stadiene av serverdesign og CPU-valg. Et raskt Google-søk avslører at AMD og Intel har forskjellige tilnærminger til å definere TDP, noe som gjør spesifikasjonen upålitelig. Reelt CPU-strømforbruk, og enda viktigere serverstrømforbruk, er det vi virkelig bruker når vi tar vår endelige beslutning.

Økosystemberedskap

For å starte reisen mot å velge vår neste prosessor, så vi på et bredt spekter av CPUer fra forskjellige produsenter som passet godt for programvarestabelen vår og tjenester (skrevet i C, LuaJIT og Go). Vi har allerede beskrevet i detalj et sett med verktøy for å måle hastighet i en av våre bloggartikler. I dette tilfellet brukte vi det samme settet - det lar oss evaluere effektiviteten til CPU på rimelig tid, hvoretter ingeniørene våre kan begynne å tilpasse programmene våre til en spesifikk prosessor.

Vi testet en rekke prosessorer med en rekke kjernetellinger, sockettellinger og frekvenser. Siden denne artikkelen handler om hvorfor vi bestemte oss for AMD EPYC 7642, fokuserer alle diagrammer i denne bloggen på hvordan AMD-prosessorer yter sammenlignet med Intel Xeon Platinum 6162 fra vår 9. generasjon.

Resultatene tilsvarer målinger av en enkelt server med hvert prosessoralternativ - det vil si med to 24-kjerners prosessorer fra Intel, eller med en 48-kjerners prosessor fra AMD (server for Intel med to sockets og server for AMD EPYC med en) . I BIOS setter vi parametrene som tilsvarer de kjørende serverne. Dette er 3,03 GHz for AMD og 2,5 GHz for Intel. Betraktelig forenklet forventer vi at med samme antall kjerner vil AMD yte 21 % bedre enn Intel.

Kryptografi

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Ser lovende ut for AMD. Den yter 18 % bedre på kryptografi med offentlig nøkkel. Med en symmetrisk nøkkel taper den for AES-128-GCM-krypteringsalternativene, men totalt sett fungerer den sammenlignbar.

Kompresjon

På kantservere komprimerer vi mye data for å spare båndbredde og øke hastigheten på innholdslevering. Vi sender dataene gjennom C-bibliotekene zlib og brotli. Alle testene ble kjørt på blog.cloudflare.com HTML-filen i minnet.

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

AMD vant med et gjennomsnitt på 29 % ved bruk av gzip. Når det gjelder brotli er resultatene enda bedre, på tester med kvalitet 7, som vi bruker til dynamisk komprimering. På brotli-9-testen er det et kraftig fall - vi forklarer dette med at Brotli bruker mye minne og flyter over cachen. AMD vinner imidlertid med stor margin.

Mange av tjenestene våre er skrevet i Go. I de følgende grafene dobbeltsjekker vi hastigheten på kryptografi og komprimering i Go med RegExp på 32 KB-linjer ved å bruke strengbiblioteket.

Gå til kryptografi

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Gå til komprimering

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Gå til Regexp

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Go Strings

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

AMD presterer bedre i alle tester med Go bortsett fra ECDSA P256 Sign, hvor den var 38 % bak – noe som er merkelig, gitt at den presterte 24 % bedre i C. Det er verdt å finne ut hva som skjer der. Totalt sett vinner ikke AMD mye, men viser likevel de beste resultatene.

LuaJIT

Vi bruker ofte LuaJIT på stabelen. Dette er limet som holder alle delene av Cloudflare sammen. Og vi er glade for at AMD vant også her.

Samlet sett viser testene at EPYC 7642 yter bedre enn to Xeon Platinum 6162. AMD taper på et par tester - for eksempel AES-128-GCM og Go OpenSSL ECDSA-P256 Sign - men vinner på alle andre, med et gjennomsnitt på 25 %.

Simulering av arbeidsbelastning

Etter våre raske tester kjørte vi serverne gjennom et annet sett med simuleringer der en syntetisk belastning påføres programvarens kantstabel. Her simulerer vi en scenarioarbeidsmengde med ulike typer forespørsler som kan oppstå i virkelig arbeid. Forespørsler varierer i datavolum, HTTP- eller HTTPS-protokoller, WAF-kilder, arbeidere og mange andre variabler. Nedenfor er en sammenligning av gjennomstrømmingen til de to CPUene for de typene forespørsler som vi møter oftest.

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Resultatene i diagrammet er målt mot grunnlinjen til 9. generasjons Intel-baserte maskiner, normalisert til en verdi på 1,0 på x-aksen. Hvis vi for eksempel tar enkle 10 KiB-forespørsler over HTTPS, kan vi se at AMD gjør det 1,5 ganger bedre enn Intel når det gjelder forespørsler per sekund. I gjennomsnitt presterte AMD 34 % bedre enn Intel for disse testene. Tatt i betraktning at TDP for en enkelt AMD EPYC 7642 er 225 W, og for to Intel-prosessorer er 300 W, viser det seg at når det gjelder "forespørsler per watt" viser AMD 2 ganger bedre resultater enn Intel!

På dette tidspunktet lente vi allerede tydeligvis mot enkeltsokkelalternativet for AMD EPYC 7642 som våre fremtidige Gen X CPUer. Vi var veldig interessert i å se hvordan AMD EPYC-serverne ville fungere i den virkelige verden, og vi sendte umiddelbart flere servere til noen fra datasentre.

Virkelig arbeid

Det første trinnet var naturligvis å forberede serverne for arbeid under reelle forhold. Alle maskiner i flåten vår arbeider med de samme prosessene og tjenestene, noe som gir en utmerket mulighet til å sammenligne ytelsen korrekt. Som de fleste datasentre har vi flere generasjoner servere utplassert, og vi samler serverne våre i klynger slik at hver klasse inneholder servere av omtrent samme generasjoner. I noen tilfeller kan dette resultere i resirkuleringskurver som er forskjellige mellom klynger. Men ikke hos oss. Våre ingeniører har optimert CPU-utnyttelsen for alle generasjoner, slik at uansett om en bestemt maskins CPU har 8 kjerner eller 24, er CPU-utnyttelsen generelt den samme som resten.

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Grafen illustrerer vår kommentar om likheten i utnyttelse - det er ingen signifikant forskjell mellom bruken av AMD CPUer i Gen X generasjons servere og bruken av Intel prosessorer i Gen 9 generasjons servere. Dette betyr at både test- og baseline-servere lastes likt . Flott. Det er akkurat dette vi streber etter på serverne våre, og vi trenger dette for en rettferdig sammenligning. De to grafene nedenfor viser antall forespørsler behandlet av én CPU-kjerne og alle kjerner på servernivå.

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere
Forespørsler per kjerne

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere
Forespørsler til serveren

Det kan sees at AMD i gjennomsnitt behandler 23 % flere forespørsler. Ikke verst! Vi har ofte skrevet på bloggen vår om måter å øke ytelsen til Gen 9. Og nå har vi samme antall kjerner, men AMD gjør mer arbeid med mindre kraft. Det er umiddelbart klart fra spesifikasjonene for antall kjerner og TDP at AMD gir større hastighet med større energieffektivitet.

Men som vi allerede har nevnt, er ikke TDP en standardspesifikasjon og den er ikke den samme for alle produsenter, så la oss se på den faktiske energibruken. Ved å måle serverens energiforbruk parallelt med antall forespørsler per sekund, fikk vi følgende graf:

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere

Basert på forespørsler per sekund per watt brukt, er Gen X-servere som kjører på AMD-prosessorer 28 % mer effektive. Man kunne forvente mer, gitt at AMDs TDP er 25% lavere, men det bør huskes at TDP er en tvetydig karakteristikk. Vi har sett at AMDs faktiske strømforbruk er nesten identisk med den oppgitte TDP ved frekvenser som er mye høyere enn basen; Intel har ikke det. Dette er en annen grunn til at TDP ikke er et pålitelig estimat for energiforbruk. CPUer fra Intel i våre Gen 9-servere er integrert i et multi-node-system, mens CPUer fra AMD opererer i standard 1U formfaktorservere. Dette er ikke til fordel for AMD, siden multinode-servere skal gi større tetthet med mindre strømforbruk per node, men AMD gikk likevel forbi Intel når det gjelder strømforbruk per node.

I de fleste sammenligninger på tvers av spesifikasjoner, testsimuleringer og ytelse i den virkelige verden, presterte 1P AMD EPYC 7642-konfigurasjonen betydelig bedre enn 2P Intel Xeon 6162. Under noen forhold kan AMD yte opptil 36 % bedre, og vi tror at ved å optimalisere maskinvare og programvare, vi kan oppnå denne forbedringen på en kontinuerlig basis.

Det viser seg at AMD vant.

Ytterligere grafer viser gjennomsnittlig latens og p99-latens som kjører NGINX over en 24-timers periode. I gjennomsnitt kjørte prosesser på AMD 25 % raskere. På p99 går den 20-50 % raskere avhengig av tid på døgnet.

Konklusjon

Cloudflares maskinvare- og ytelsesingeniører gjør en betydelig mengde testing og forskning for å finne den beste serverkonfigurasjonen for kundene våre. Vi elsker å jobbe her fordi vi kan løse store problemer som disse, og vi kan hjelpe deg med å løse problemene dine med tjenester som serverløs kantdatabehandling og en rekke sikkerhetsløsninger som Magic Transit, Argo Tunnel og DDoS-beskyttelse. . Alle servere i Cloudflare-nettverket er konfigurert til å yte pålitelig, og vi prøver alltid å gjøre hver neste generasjon servere bedre enn den forrige. Vi tror AMD EPYC 7642 er svaret når det kommer til Gen X-prosessorer.

Ved å bruke Cloudflare Workers distribuerer utviklere applikasjonene sine på vårt ekspanderende nettverk rundt om i verden. Vi er stolte av å la kundene våre fokusere på å skrive kode mens vi fokuserer på sikkerhet og pålitelighet i skyen. Og i dag er vi enda mer glade for å kunngjøre at arbeidet deres vil bli distribuert på våre Gen X-generasjonsservere som kjører andre generasjons AMD EPYC-prosessorer.

Cloudflare velger prosessorer fra AMD for tiende generasjons edge-servere
EPYC 7642-prosessorer, kodenavn "Roma" [Roma]

Ved å bruke AMDs EPYC 7642 kunne vi øke ytelsen vår og gjøre det enklere å utvide nettverket vårt til nye byer. Roma ble ikke bygget på en dag, men det vil snart være nærmere mange av dere.

De siste par årene har vi eksperimentert med mange x86-brikker fra Intel og AMD, samt prosessorer fra ARM. Vi forventer at disse CPU-produsentene fortsetter å samarbeide med oss ​​i fremtiden, slik at vi alle kan bygge et bedre Internett sammen.

Kilde: www.habr.com

Legg til en kommentar