Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Peste un miliard de adrese IP unice trec prin rețeaua Cloudflare în fiecare zi; deservește mai mult de 11 milioane de solicitări HTTP pe secundă; ea se află la 100 ms de 95% din populația internetului. Rețeaua noastră se întinde pe 200 de orașe din peste 90 de țări, iar echipa noastră de ingineri a construit o infrastructură extrem de rapidă și de încredere.

Suntem foarte mândri de munca noastră și ne angajăm să contribuim la transformarea internetului într-un loc mai bun și mai sigur. Inginerii hardware de la Cloudflare au o înțelegere profundă a serverelor și a componentelor acestora pentru a înțelege și selecta cel mai bun hardware pentru a-și maximiza performanța.

Stack-ul nostru de software se ocupă de calculul cu sarcină mare și este foarte dependent de CPU, solicitând inginerilor noștri să optimizeze continuu eficiența și fiabilitatea Cloudflare la fiecare nivel al stivei. Pe partea de server, cel mai simplu mod de a crește puterea de procesare este prin adăugarea de nuclee CPU. Cu cât un server poate încăpea mai multe nuclee, cu atât poate procesa mai multe date. Acest lucru este important pentru noi, deoarece varietatea produselor și clienților noștri crește de-a lungul timpului, iar creșterea cererilor necesită o performanță sporită de la servere. Pentru a le crește performanța, trebuia să creștem densitatea nucleelor ​​- și exact asta am realizat. Mai jos oferim date detaliate despre procesoarele pentru serverele pe care le-am implementat din 2015, inclusiv numărul de nuclee:

-
Geneza 6
Geneza 7
Geneza 8
Geneza 9

Noțiuni de bază
2015
2016
2017
2018

Procesor
Intel Xeon E5 2630 v3
Intel Xeon E5 2630 v4
Intel Xeon Silver 4116
Intel Xeon Platinum 6162

Miezuri fizice
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 nucleu
10.65W
8.50W
7.08W
6.25W

În 2018, am făcut un salt mare în numărul total de nuclee pe server cu Gen 9. Impactul asupra mediului a fost redus cu 33% comparativ cu generația a 8-a, oferindu-ne posibilitatea de a crește volumul și puterea de calcul per rack. Cerințe de proiectare pentru disiparea căldurii (Puterea designului termic, TDP) sunt menționate pentru a evidenția faptul că eficiența noastră energetică a crescut și ea în timp. Acest indicator este important pentru noi: în primul rând, dorim să emitem mai puțin carbon în atmosferă; în al doilea rând, dorim să folosim cât mai bine energia din centrele de date. Dar știm că avem ceva pentru care să ne străduim.

Principala noastră valoare definitorie este numărul de solicitări pe watt. Putem crește numărul de solicitări pe secundă prin adăugarea de nuclee, dar trebuie să ne menținem în bugetul nostru de putere. Suntem limitați de infrastructura de alimentare a centrului de date, care, împreună cu modulele noastre de distribuție a energiei selectate, ne oferă o anumită limită superioară pentru fiecare rack de server. Adăugarea de servere la un rack crește consumul de energie. Costurile de operare vor crește semnificativ dacă depășim limita de energie per-rack și trebuie să adăugăm noi rafturi. Trebuie să creștem puterea de procesare, rămânând în același interval de consum de energie, ceea ce va crește cererile pe watt, valoarea noastră cheie.

După cum probabil ați ghicit, am studiat cu atenție consumul de energie în faza de proiectare. Tabelul de mai sus arată că nu ar trebui să pierdem timpul instalând procesoare mai mari consumatoare de energie dacă TDP-ul per nucleu este mai mare decât generația actuală - acest lucru va avea un impact negativ asupra valorii noastre, cererile pe watt. Am studiat cu atenție sistemele gata de rulare pentru generația noastră X de pe piață și am luat o decizie. Trecem de la designul nostru Intel Xeon Platinum 48 dual-socket cu 6162 de nuclee la un design cu un singur socket AMD EPYC 48 cu 7642 de nuclee.

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

-
Intel
AMD

Procesor
Xeon Platinum 6162
EPYC 7642

Microarhitectura
"Skylake"
„Zen 2”

Nume de cod
Skylake SP
"Roma"

Proces tehnologic
14nm
7nm

miezuri
2 x 24
48

frecvență
1.9 GHz
2.4 GHz

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

Memorie/soclu
6 canale, până la DDR4-2400
8 canale, până la DDR4-3200

TDP
2 x 150W
225W

PCIe/socket
48 benzi
128 benzi

ISA
x86-64
x86-64

Din specificații este clar că cipul de la AMD ne va permite să păstrăm același număr de nuclee în timp ce scădem TDP-ul. A 9-a generație a avut un TDP per nucleu de 6,25 W, iar a X-a generație va fi de 4,69 W. Redus cu 25%. Datorită frecvenței crescute și, probabil, unui design mai simplu cu un singur soclu, se poate presupune că cipul AMD va funcționa mai bine în practică. În prezent, rulăm diverse teste și simulări pentru a vedea cât de mult va funcționa AMD mai bine.

Deocamdată, să remarcăm că TDP este o măsură simplificată din specificațiile producătorului, pe care am folosit-o în etapele incipiente ale designului serverului și ale selecției CPU. O căutare rapidă pe Google dezvăluie că AMD și Intel au abordări diferite pentru definirea TDP, ceea ce face ca specificația să nu fie de încredere. Consumul real de energie al procesorului și, mai important, consumul de energie al serverului, este ceea ce folosim cu adevărat atunci când luăm decizia finală.

Pregătirea ecosistemului

Pentru a începe călătoria noastră spre selectarea următorului nostru procesor, ne-am uitat la o gamă largă de procesoare de la diferiți producători care se potriveau bine pentru stiva și serviciile noastre de software (scrise în C, LuaJIT și Go). Am descris deja în detaliu un set de instrumente pentru măsurarea vitezei într-unul dintre articolele noastre de blog. În acest caz, am folosit același set - ne permite să evaluăm eficiența procesorului într-un timp rezonabil, după care inginerii noștri pot începe să ne adapteze programele la un anumit procesor.

Am testat o varietate de procesoare cu o varietate de număr de nuclee, număr de socketuri și frecvențe. Deoarece acest articol este despre motivul pentru care ne-am stabilit pe AMD EPYC 7642, toate diagramele din acest blog se concentrează asupra modului în care procesoarele AMD se comportă în comparație cu Intel Xeon Platinum 6162 de la generația noastră a 9-a.

Rezultatele corespund măsurătorilor unui singur server cu fiecare opțiune de procesor - adică cu două procesoare cu 24 de nuclee de la Intel sau cu un procesor cu 48 de nuclee de la AMD (server pentru Intel cu două socluri și server pentru AMD EPYC cu unul) . În BIOS setăm parametrii corespunzători serverelor care rulează. Acesta este 3,03 GHz pentru AMD și 2,5 GHz pentru Intel. Simplificand foarte mult, ne asteptam ca, cu acelasi numar de nuclee, AMD va functiona cu 21% mai bine decat Intel.

Criptografie

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Pare promițător pentru AMD. Funcționează cu 18% mai bine la criptografia cu cheie publică. Cu o cheie simetrică, pierde pentru opțiunile de criptare AES-128-GCM, dar în general funcționează comparabil.

Comprimare

Pe serverele edge, comprimăm o mulțime de date pentru a economisi lățime de bandă și pentru a crește viteza de livrare a conținutului. Trecem datele prin bibliotecile C zlib și brotli. Toate testele au fost executate pe fișierul HTML blog.cloudflare.com din memorie.

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

AMD a câștigat cu o medie de 29% când folosește gzip. In cazul brotli, rezultatele sunt si mai bune la testele cu calitatea 7, pe care o folosim pentru compresia dinamica. La testul brotli-9 există o scădere bruscă - explicăm acest lucru prin faptul că Brotli consumă multă memorie și depășește memoria cache. Cu toate acestea, AMD câștigă cu o marjă mare.

Multe dintre serviciile noastre sunt scrise în Go. În graficele următoare, verificăm viteza de criptare și compresie în Go with RegExp pe linii de 32 KB folosind biblioteca de șiruri.

Du-te la criptografie

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Du-te la compresie

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Du-te Regexp

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Du-te șiruri

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

AMD are performanțe mai bune la toate testele cu Go, cu excepția ECDSA P256 Sign, unde a fost cu 38% în urmă - ceea ce este ciudat, având în vedere că a funcționat cu 24% mai bine în C. Merită să ne dăm seama ce se întâmplă acolo. În general, AMD nu câștigă prea mult, dar arată totuși cele mai bune rezultate.

LuaJIT

Folosim adesea LuaJIT pe stivă. Acesta este lipiciul care ține toate părțile Cloudflare împreună. Și ne bucurăm că AMD a câștigat și aici.

În general, testele arată că EPYC 7642 are performanțe mai bune decât două Xeon Platinum 6162. AMD pierde la câteva teste - de exemplu, AES-128-GCM și Go OpenSSL ECDSA-P256 Sign - dar câștigă la toate celelalte, în medie. de 25%.

Simularea sarcinii de lucru

După testele noastre rapide, am rulat serverele printr-un alt set de simulări în care o încărcare sintetică este aplicată stivei de margine a software-ului. Aici simulăm un scenariu de sarcină de lucru cu diferite tipuri de solicitări care pot fi întâlnite în munca reală. Solicitările variază în ceea ce privește volumul de date, protocoalele HTTP sau HTTPS, sursele WAF, lucrătorii și alte multe variabile. Mai jos este o comparație a debitului celor două procesoare pentru tipurile de solicitări pe care le întâlnim cel mai des.

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Rezultatele din grafic sunt măsurate în raport cu linia de bază a mașinilor bazate pe Intel din a 9-a generație, normalizate la o valoare de 1,0 pe axa x. De exemplu, luând cereri simple de 10 KiB prin HTTPS, putem vedea că AMD face de 1,5 ori mai bine decât Intel în ceea ce privește cererile pe secundă. În medie, AMD a avut rezultate cu 34% mai bune decât Intel pentru aceste teste. Având în vedere că TDP-ul pentru un singur AMD EPYC 7642 este de 225 W, iar pentru două procesoare Intel este de 300 W, rezultă că în ceea ce privește „cererile per watt” AMD arată rezultate de 2 ori mai bune decât Intel!

În acest moment, înclinam deja în mod clar către opțiunea cu socket unic pentru AMD EPYC 7642 ca viitoare procesoare ale noastre Gen X. Eram foarte interesați să vedem cum vor funcționa serverele AMD EPYC în lucru real și am trimis imediat mai multe servere către unele din centrele de date.

Muncă adevărată

Primul pas, firesc, a fost pregătirea serverelor pentru lucru în condiții reale. Toate mașinile din flota noastră funcționează cu aceleași procese și servicii, ceea ce oferă o oportunitate excelentă de a compara corect performanța. La fel ca majoritatea centrelor de date, avem mai multe generații de servere implementate și colectăm serverele noastre în clustere, astfel încât fiecare clasă să conțină servere de aproximativ aceeași generație. În unele cazuri, acest lucru poate duce la curbe de reciclare care diferă între grupuri. Dar nu cu noi. Inginerii noștri au optimizat utilizarea procesorului pentru toate generațiile, astfel încât, indiferent dacă procesorul unei anumite mașini are 8 nuclee sau 24, utilizarea procesorului este în general aceeași cu restul.

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Graficul ilustrează comentariul nostru cu privire la asemănarea utilizării - nu există nicio diferență semnificativă între utilizarea procesoarelor AMD în serverele din generația X și utilizarea procesoarelor Intel în serverele din generația 9. Aceasta înseamnă că atât serverele de testare, cât și cele de bază sunt încărcate în mod egal. . Grozav. Este exact ceea ce ne străduim pe serverele noastre și avem nevoie de asta pentru o comparație corectă. Cele două grafice de mai jos arată numărul de solicitări procesate de un nucleu CPU și toate nucleele la nivel de server.

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație
Cereri pe nucleu

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație
Solicitări către server

Se poate observa că, în medie, AMD procesează cu 23% mai multe solicitări. Nu-i rău deloc! Am scris adesea pe blogul nostru despre modalități de a crește performanța Gen 9. Și acum avem același număr de nuclee, dar AMD lucrează mai mult cu mai puțină putere. Din specificațiile pentru numărul de nuclee și TDP reiese imediat că AMD oferă o viteză mai mare cu o eficiență energetică mai mare.

Dar, așa cum am menționat deja, TDP nu este o specificație standard și nu este aceeași pentru toți producătorii, așa că să ne uităm la consumul real de energie. Măsurând consumul de energie al serverului în paralel cu numărul de solicitări pe secundă, am obținut următorul grafic:

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație

Pe baza cererilor pe secundă per watt cheltuit, serverele Gen X care rulează pe procesoare AMD sunt cu 28% mai eficiente. Ne-am putea aștepta la mai mult, având în vedere că TDP-ul AMD este cu 25% mai mic, dar trebuie amintit că TDP este o caracteristică ambiguă. Am văzut că consumul real de energie al AMD este aproape identic cu TDP-ul declarat la frecvențe mult mai mari decât baza; Intel nu are asta. Acesta este un alt motiv pentru care TDP nu este o estimare fiabilă a consumului de energie. Procesoarele de la Intel din serverele noastre Gen 9 sunt integrate într-un sistem cu mai multe noduri, în timp ce procesoarele de la AMD funcționează pe servere standard cu factor de formă 1U. Acest lucru nu este în favoarea AMD, deoarece serverele multinod ar trebui să ofere o densitate mai mare cu un consum mai mic de energie per nod, dar AMD a depășit încă Intel în ceea ce privește consumul de energie pe nod.

În majoritatea comparațiilor între specificații, simulări de testare și performanță în lumea reală, configurația 1P AMD EPYC 7642 a funcționat semnificativ mai bine decât Intel Xeon 2 6162P. În unele condiții, AMD poate funcționa cu până la 36% mai bine și credem că prin optimizare hardware și software, putem realiza această îmbunătățire în mod continuu.

Se pare că AMD a câștigat.

Graficele suplimentare arată latența medie și latența p99 care rulează NGINX pe o perioadă de 24 de ore. În medie, procesele de pe AMD au rulat cu 25% mai rapid. Pe p99, rulează cu 20-50% mai rapid, în funcție de momentul zilei.

Concluzie

Inginerii Hardware și Performance de la Cloudflare efectuează o cantitate semnificativă de teste și cercetări pentru a determina cea mai bună configurație de server pentru clienții noștri. Ne place să lucrăm aici, deoarece putem rezolva probleme mari ca acestea și vă putem ajuta să vă rezolvați problemele cu servicii precum edge computing fără server și o serie de soluții de securitate precum Magic Transit, Argo Tunnel și protecție DDoS. . Toate serverele din rețeaua Cloudflare sunt configurate pentru a funcționa fiabil și încercăm mereu să facem fiecare generație următoare de servere mai bună decât cea anterioară. Credem că AMD EPYC 7642 este răspunsul când vine vorba de procesoare Gen X.

Folosind Cloudflare Workers, dezvoltatorii își implementează aplicațiile în rețeaua noastră în expansiune din întreaga lume. Suntem mândri să lăsăm clienții noștri să se concentreze pe scrierea codului, în timp ce ne concentrăm pe securitate și fiabilitate în cloud. Și astăzi suntem și mai încântați să anunțăm că munca lor va fi implementată pe serverele noastre din generația X, care rulează procesoare AMD EPYC de a doua generație.

Cloudflare alege procesoare de la AMD pentru serverele edge din a zecea generație
Procesoare EPYC 7642, nume de cod „Roma” [Roma]

Folosind EPYC 7642 de la AMD, am reușit să ne creștem performanța și să facem mai ușoară extinderea rețelei noastre în orașe noi. Roma nu a fost construită într-o zi, dar în curând va fi mai aproape de mulți dintre voi.

În ultimii câțiva ani am experimentat cu multe cipuri x86 de la Intel și AMD, precum și cu procesoare de la ARM. Ne așteptăm ca acești producători de procesoare să continue să lucreze cu noi în viitor, astfel încât să putem construi împreună un internet mai bun.

Sursa: www.habr.com

Adauga un comentariu