Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Mere end en milliard unikke IP-adresser passerer gennem Cloudflare-netværket hver dag; den betjener mere end 11 millioner HTTP-anmodninger i sekundet; hun er inden for 100 ms fra 95 % af internetbefolkningen. Vores netværk spænder over 200 byer i over 90 lande, og vores team af ingeniører har bygget en ekstremt hurtig og pålidelig infrastruktur.

Vi sætter en stor ære i vores arbejde og er forpligtet til at hjælpe med at gøre internettet til et bedre og sikrere sted. Cloudflares hardwareingeniører har en dyb forståelse af servere og deres komponenter for at forstå og vælge den bedste hardware for at maksimere dens ydeevne.

Vores softwarestack håndterer databehandling med høj belastning og er meget CPU-afhængig, hvilket kræver, at vores ingeniører løbende optimerer Cloudflares effektivitet og pålidelighed på alle niveauer af stakken. På serversiden er den nemmeste måde at øge processorkraften ved at tilføje CPU-kerner. Jo flere kerner en server kan passe, jo flere data kan den behandle. Dette er vigtigt for os, fordi mangfoldigheden af ​​vores produkter og kunder vokser over tid, og væksten i anmodninger kræver øget ydeevne fra servere. For at øge deres ydeevne var vi nødt til at øge tætheden af ​​kernerne - og det er præcis, hvad vi opnåede. Nedenfor giver vi detaljerede data om processorer til servere, som vi har installeret siden 2015, inklusive antallet af kerner:


Gen 6
Gen 7
Gen 8
Gen 9

Kom godt i gang
2015
2016
2017
2018

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

Fysiske kerner
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 kerne
10.65W
8.50W
7.08W
6.25W

I 2018 tog vi et stort spring i det samlede antal kerner per server med Gen 9. Miljøbelastningen er reduceret med 33 % i forhold til 8. generation, hvilket giver os mulighed for at øge volumen og computerkraften pr. rack. Designkrav til varmeafledning (Termisk designkraft, TDP) nævnes for at fremhæve, at vores energieffektivitet også er steget over tid. Denne indikator er vigtig for os: For det første ønsker vi at udlede mindre kulstof til atmosfæren; for det andet vil vi udnytte energien fra datacentrene bedst muligt. Men vi ved, at vi har noget at stræbe efter.

Vores vigtigste definerende metrik er antallet af anmodninger pr. watt. Vi kan øge antallet af anmodninger pr. sekund ved at tilføje kerner, men vi skal holde os inden for vores strømbudget. Vi er begrænset af datacenterets strøminfrastruktur, som sammen med vores udvalgte strømfordelingsmoduler giver os en vis øvre grænse for hvert serverrack. Tilføjelse af servere til et rack øger strømforbruget. Driftsomkostningerne vil stige markant, hvis vi overskrider energigrænsen pr. stativ og skal tilføje nye stativer. Vi skal øge processorkraften, mens vi holder os inden for det samme strømforbrugsområde, hvilket vil øge anmodninger pr. watt, vores nøglemål.

Som du måske har gættet, undersøgte vi omhyggeligt energiforbruget på designstadiet. Tabellen ovenfor viser, at vi ikke skal spilde tid på at installere flere energikrævende CPU'er, hvis TDP pr. kerne er højere end den nuværende generation - dette vil negativt påvirke vores metriske, anmodninger pr. watt. Vi undersøgte omhyggeligt de køreklare systemer til vores generation X på markedet og traf en beslutning. Vi går fra vores 48-core Intel Xeon Platinum 6162 dual-socket design til et 48-core AMD EPYC 7642 single-socket design.

Cloudflare vælger processorer fra AMD til tiende generations edge-servere


Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

mikroarkitektur
"Skylake"
"Zen 2"

Kodenavn
Skylake SP
"Rom"

Teknisk proces
14nm
7nm

Nucleus
X 2 24
48

frekvens
1.9 GHz
2.4 GHz

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

Hukommelse/stik
6 kanaler, op til DDR4-2400
8 kanaler, op til DDR4-3200

TDP
2 x 150W
225W

PCIe/socket
48 baner
128 baner

ISA
x86-64
x86-64

Fra specifikationerne er det klart, at chippen fra AMD vil give os mulighed for at beholde det samme antal kerner, mens TDP sænkes. Den 9. generation havde en TDP pr. kerne på 6,25 W, og den X. generation vil være på 4,69 W. Reduceret med 25 %. Takket være den øgede frekvens, og måske et mere simpelt design med ét stik, kan det formodes, at AMD-chippen vil klare sig bedre i praksis. Vi kører i øjeblikket forskellige tests og simuleringer for at se, hvor meget bedre AMD vil præstere.

Lad os indtil videre bemærke, at TDP er en forenklet metrik fra producentens specifikationer, som vi brugte i de tidlige stadier af serverdesign og CPU-valg. En hurtig Google-søgning afslører, at AMD og Intel har forskellige tilgange til at definere TDP, hvilket gør specifikationen upålidelig. Reelt CPU-strømforbrug, og endnu vigtigere serverstrømforbrug, er det, vi virkelig bruger, når vi træffer vores endelige beslutning.

Økosystemberedskab

For at begynde vores rejse til at vælge vores næste processor, kiggede vi på en bred vifte af CPU'er fra forskellige producenter, som passede godt til vores softwarestak og tjenester (skrevet i C, LuaJIT og Go). Vi har allerede beskrevet i detaljer et sæt værktøjer til måling af hastighed i en af ​​vores blogartikler. I dette tilfælde brugte vi det samme sæt - det giver os mulighed for at evaluere effektiviteten af ​​CPU'en inden for rimelig tid, hvorefter vores ingeniører kan begynde at tilpasse vores programmer til en bestemt processor.

Vi testede en række processorer med en række kernetællinger, sockettællinger og frekvenser. Da denne artikel handler om, hvorfor vi besluttede os for AMD EPYC 7642, fokuserer alle diagrammer i denne blog på, hvordan AMD-processorer præsterer sammenlignet med Intel Xeon Platinum 6162 fra vores 9. generation.

Resultaterne svarer til målinger af en enkelt server med hver processorvariant - det vil sige med to 24-core processorer fra Intel, eller med en 48-core processor fra AMD (server til Intel med to sockets og server til AMD EPYC med en) . I BIOS indstiller vi de parametre, der svarer til de kørende servere. Dette er 3,03 GHz for AMD og 2,5 GHz for Intel. I høj grad forenklet forventer vi, at med det samme antal kerner, vil AMD præstere 21 % bedre end Intel.

Kryptografi

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Ser lovende ud for AMD. Den klarer sig 18 % bedre på kryptografi med offentlig nøgle. Med en symmetrisk nøgle taber den for AES-128-GCM-krypteringsmulighederne, men fungerer generelt sammenligneligt.

kompression

På edge-servere komprimerer vi en masse data for at spare på båndbredden og øge hastigheden af ​​indholdslevering. Vi sender dataene gennem C-bibliotekerne zlib og brotli. Alle test blev kørt på blog.cloudflare.com HTML-filen i hukommelsen.

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

AMD vandt med et gennemsnit på 29% ved brug af gzip. I tilfældet med brotli er resultaterne endnu bedre på test med kvalitet 7, som vi bruger til dynamisk komprimering. På brotli-9-testen er der et kraftigt fald - det forklarer vi med, at Brotli bruger meget hukommelse og flyder over cachen. AMD vinder dog med stor margin.

Mange af vores tjenester er skrevet i Go. I de følgende grafer dobbelttjekker vi hastigheden af ​​kryptografi og komprimering i Go med RegExp på 32 KB-linjer ved hjælp af strengebiblioteket.

Gå til kryptografi

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Gå til komprimering

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Gå til Regexp

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Go Strings

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

AMD klarer sig bedre i alle test med Go undtagen ECDSA P256 Sign, hvor den var 38 % bagud – hvilket er mærkeligt, givet at den klarede sig 24 % bedre i C. Det er værd at finde ud af, hvad der foregår der. Samlet set vinder AMD ikke meget, men viser stadig de bedste resultater.

LuaJIT

Vi bruger ofte LuaJIT på stakken. Dette er limen, der holder alle dele af Cloudflare sammen. Og vi er glade for, at AMD også vandt her.

Samlet set viser testene, at EPYC 7642 klarer sig bedre end to Xeon Platinum 6162. AMD taber på et par tests - for eksempel AES-128-GCM og Go OpenSSL ECDSA-P256 Sign - men vinder på alle andre med et gennemsnit på 25 %.

Arbejdsbelastningssimulering

Efter vores hurtige test kørte vi serverne gennem et andet sæt simuleringer, hvor en syntetisk belastning påføres softwarens kantstack. Her simulerer vi en scenariearbejdsbelastning med forskellige typer anmodninger, der kan stødes på i virkeligt arbejde. Anmodninger varierer i datavolumen, HTTP- eller HTTPS-protokoller, WAF-kilder, Workers og mange andre variabler. Nedenfor er en sammenligning af gennemløbet af de to CPU'er for de typer anmodninger, som vi oftest støder på.

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Resultaterne i diagrammet er målt mod basislinjen for 9. generation af Intel-baserede maskiner, normaliseret til en værdi på 1,0 på x-aksen. Hvis vi for eksempel tager simple 10 KiB-anmodninger over HTTPS, kan vi se, at AMD klarer sig 1,5 gange bedre end Intel med hensyn til anmodninger pr. sekund. I gennemsnit klarede AMD sig 34 % bedre end Intel for disse tests. I betragtning af, at TDP for en enkelt AMD EPYC 7642 er 225 W, og for to Intel-processorer er 300 W, viser det sig, at med hensyn til "anmodninger pr. watt" viser AMD 2 gange bedre resultater end Intel!

På dette tidspunkt hældede vi allerede tydeligt til muligheden for enkelt socket til AMD EPYC 7642 som vores fremtidige Gen X CPU'er. Vi var meget interesserede i at se, hvordan AMD EPYC-serverne ville klare sig i virkeligheden, og vi sendte straks adskillige servere til nogle fra datacentre.

Rigtigt arbejde

Det første skridt var naturligvis at forberede serverne til arbejde under virkelige forhold. Alle maskiner i vores flåde arbejder med de samme processer og tjenester, hvilket giver en fremragende mulighed for at sammenligne ydeevnen korrekt. Som de fleste datacentre har vi flere generationer af servere installeret, og vi samler vores servere i klynger, så hver klasse indeholder servere af omtrent samme generationer. I nogle tilfælde kan dette resultere i genbrugskurver, der er forskellige mellem klynger. Men ikke hos os. Vores ingeniører har optimeret CPU-udnyttelsen for alle generationer, så uanset om en bestemt maskines CPU har 8 kerner eller 24, så er CPU-udnyttelsen generelt den samme som resten.

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Grafen illustrerer vores kommentar til ligheden i udnyttelse - der er ingen signifikant forskel mellem brugen af ​​AMD CPU'er i Gen X generations servere og brugen af ​​Intel processorer i Gen 9 generation servere. Det betyder, at både test- og baseline-servere belastes lige meget. . Store. Det er præcis, hvad vi stræber efter på vores servere, og vi har brug for dette for en rimelig sammenligning. De to grafer nedenfor viser antallet af anmodninger behandlet af én CPU-kerne og alle kerner på serverniveau.

Cloudflare vælger processorer fra AMD til tiende generations edge-servere
Forespørgsler pr. kerne

Cloudflare vælger processorer fra AMD til tiende generations edge-servere
Forespørgsler til serveren

Det kan ses, at AMD i gennemsnit behandler 23% flere anmodninger. Slet ikke dårligt! Vi har ofte skrevet på vores blog om måder at øge ydeevnen af ​​Gen 9. Og nu har vi det samme antal kerner, men AMD udfører mere arbejde med mindre strøm. Det fremgår umiddelbart af specifikationerne for antallet af kerner og TDP, at AMD giver større hastighed med større energieffektivitet.

Men som vi allerede har nævnt, er TDP ikke en standardspecifikation, og det er ikke ens for alle producenter, så lad os se på det faktiske energiforbrug. Ved at måle serverens energiforbrug parallelt med antallet af anmodninger i sekundet fik vi følgende graf:

Cloudflare vælger processorer fra AMD til tiende generations edge-servere

Baseret på anmodninger pr. sekund pr. watt brugt, er Gen X-servere, der kører på AMD-processorer, 28 % mere effektive. Man kunne forvente mere, givet at AMD's TDP er 25% lavere, men det skal huskes, at TDP er en tvetydig karakteristik. Vi har set, at AMD's faktiske strømforbrug er næsten identisk med den angivne TDP ved frekvenser meget højere end basen; Det har Intel ikke. Dette er endnu en grund til, at TDP ikke er et pålideligt skøn over energiforbruget. CPU'er fra Intel i vores Gen 9-servere er integreret i et multi-node-system, mens CPU'er fra AMD fungerer i standard 1U-formfaktorservere. Dette er ikke til fordel for AMD, da multinode-servere skulle give større tæthed med mindre strømforbrug pr. node, men AMD overhalede stadig Intel med hensyn til strømforbrug pr. node.

I de fleste sammenligninger på tværs af specifikationer, testsimuleringer og ydeevne i den virkelige verden klarede 1P AMD EPYC 7642-konfigurationen sig markant bedre end 2P Intel Xeon 6162. Under nogle forhold kan AMD yde op til 36 % bedre, og vi mener, at ved at optimere hardware og software, vi kan opnå denne forbedring løbende.

Det viser sig, at AMD vandt.

Yderligere grafer viser gennemsnitlig latenstid og p99-latens, der kører NGINX over en 24-timers periode. I gennemsnit kørte processer på AMD 25 % hurtigere. På p99 kører den 20-50% hurtigere afhængigt af tidspunktet på dagen.

Konklusion

Cloudflares hardware- og ydeevneingeniører udfører en betydelig mængde test og forskning for at bestemme den bedste serverkonfiguration for vores kunder. Vi elsker at arbejde her, fordi vi kan løse store problemer som disse, og vi kan hjælpe dig med at løse dine problemer med tjenester som serverløs edge computing og en række sikkerhedsløsninger som Magic Transit, Argo Tunnel og DDoS-beskyttelse. . Alle servere i Cloudflare-netværket er konfigureret til at fungere pålideligt, og vi forsøger altid at gøre hver næste generation af servere bedre end den forrige. Vi mener, at AMD EPYC 7642 er svaret, når det kommer til Gen X-processorer.

Ved hjælp af Cloudflare Workers implementerer udviklere deres applikationer på vores ekspanderende netværk rundt om i verden. Vi er stolte af at lade vores kunder fokusere på at skrive kode, mens vi fokuserer på sikkerhed og pålidelighed i skyen. Og i dag er vi endnu mere glade for at kunne meddele, at deres arbejde vil blive implementeret på vores Gen X-generationsservere, der kører andengenerations AMD EPYC-processorer.

Cloudflare vælger processorer fra AMD til tiende generations edge-servere
EPYC 7642-processorer, kodenavn "Rom" [Rom]

Ved at bruge AMD's EPYC 7642 var vi i stand til at øge vores ydeevne og gøre det nemmere at udvide vores netværk til nye byer. Rom blev ikke bygget på en dag, men det vil snart være tættere på mange af jer.

I de sidste par år har vi eksperimenteret med mange x86-chips fra Intel og AMD, samt processorer fra ARM. Vi forventer, at disse CPU-producenter vil fortsætte med at arbejde med os i fremtiden, så vi alle sammen kan bygge et bedre internet.

Kilde: www.habr.com

Tilføj en kommentar