Cloudflare tria processadors d'AMD per a servidors de desena generació

Cloudflare tria processadors d'AMD per a servidors de desena generació

Més de mil milions d'adreces IP úniques passen per la xarxa Cloudflare cada dia; dóna servei a més d'11 milions de sol·licituds HTTP per segon; es troba a 100 ms del 95% de la població d'Internet. La nostra xarxa abasta 200 ciutats en més de 90 països i el nostre equip d'enginyers ha construït una infraestructura extremadament ràpida i fiable.

Estem molt orgullosos del nostre treball i estem compromesos a ajudar a fer d'Internet un lloc millor i més segur. Els enginyers de maquinari de Cloudflare tenen un coneixement profund dels servidors i dels seus components per entendre i seleccionar el millor maquinari per maximitzar el seu rendiment.

La nostra pila de programari gestiona la informàtica d'alta càrrega i depèn molt de la CPU, la qual cosa requereix que els nostres enginyers optimitzin contínuament l'eficiència i la fiabilitat de Cloudflare a tots els nivells de la pila. Al costat del servidor, la manera més senzilla d'augmentar la potència de processament és afegint nuclis de CPU. Com més nuclis pugui cabre un servidor, més dades pot processar. Això és important per a nosaltres perquè la varietat dels nostres productes i clients va creixent amb el temps, i el creixement de les sol·licituds requereix un major rendiment dels servidors. Per augmentar el seu rendiment, havíem d'augmentar la densitat dels nuclis, i això és exactament el que vam aconseguir. A continuació oferim dades detallades sobre els processadors dels servidors que hem desplegat des del 2015, inclòs el nombre de nuclis:

-
gen 6
gen 7
gen 8
gen 9

primers passos
2015
2016
2017
2018

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

Nuclis físics
2 8 x
2 10 x
2 12 x
2 24 x

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

TDP per nucli
10.65W
8.50W
7.08W
6.25W

El 2018, vam fer un gran salt en el nombre total de nuclis per servidor amb Gen 9. L'impacte ambiental s'ha reduït un 33% en comparació amb la 8a generació, donant-nos l'oportunitat d'augmentar el volum i la potència de càlcul per bastidor. Requisits de disseny per a la dissipació de calor (Potència de disseny tèrmic, TDP) s'esmenten per destacar que la nostra eficiència energètica també ha augmentat amb el temps. Aquest indicador és important per a nosaltres: en primer lloc, volem emetre menys carboni a l'atmosfera; en segon lloc, volem aprofitar al màxim l'energia dels centres de dades. Però sabem que tenim alguna cosa per esforçar-nos.

La nostra mètrica definidora principal és el nombre de sol·licituds per watt. Podem augmentar el nombre de sol·licituds per segon afegint nuclis, però hem de mantenir-nos dins del nostre pressupost d'energia. Estem limitats per la infraestructura d'energia del centre de dades, que, juntament amb els nostres mòduls de distribució d'energia seleccionats, ens ofereix un cert límit superior per a cada bastidor de servidors. Afegir servidors a un bastidor augmenta el consum d'energia. Els costos d'explotació augmentaran significativament si superem el límit d'energia per bastidor i hem d'afegir nous bastidors. Hem d'augmentar la potència de processament mantenint-nos dins del mateix rang de consum d'energia, cosa que augmentarà les sol·licituds per watt, la nostra mètrica clau.

Com haureu endevinat, hem estudiat acuradament el consum d'energia en l'etapa de disseny. La taula anterior mostra que no hem de perdre el temps desplegant CPUs més consumides d'energia si el TDP per nucli és superior a la generació actual; això afectarà negativament la nostra mètrica, sol·licituds per watt. Vam estudiar detingudament els sistemes preparats per a funcionar per a la nostra generació X al mercat i vam prendre una decisió. Passem del nostre disseny de socket dual Intel Xeon Platinum 48 de 6162 nuclis a un disseny de socket únic AMD EPYC 48 de 7642 nuclis.

Cloudflare tria processadors d'AMD per a servidors de desena generació

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

microarquitectura
"Skylake"
"Zen 2"

Nom en clau
"Skylake SP"
“Roma”

Tecnologia de processos
14nm
7nm

nuclis
2 24 x
48

Freqüència
1.9 GHz
2.4 GHz

L3 memòria cau/socket
24 x 1.375 MiB
16 x 16 MiB

Memòria/socket
6 canals, fins a DDR4-2400
8 canals, fins a DDR4-3200

TDP
2 x 150W
225W

PCIe/socket
48 carrils
128 carrils

ÉS UN
x86-64
x86-64

A partir de les especificacions queda clar que el xip d'AMD ens permetrà mantenir el mateix nombre de nuclis alhora que baixem el TDP. La novena generació tenia un TDP per nucli de 9 W, i la X generació serà de 6,25 W. Reduït un 4,69%. Gràcies a l'augment de la freqüència, i potser a un disseny més senzill amb un sòcol, es pot suposar que el xip AMD funcionarà millor a la pràctica. Actualment estem executant diverses proves i simulacions per veure el millor rendiment d'AMD.

De moment, tinguem en compte que TDP és una mètrica simplificada de les especificacions del fabricant, que vam utilitzar en les primeres etapes del disseny del servidor i la selecció de la CPU. Una cerca ràpida a Google revela que AMD i Intel tenen diferents enfocaments per definir TDP, cosa que fa que l'especificació no sigui fiable. El consum real d'energia de la CPU i, el que és més important, el consum d'energia del servidor, és el que realment fem servir per prendre la nostra decisió final.

Preparació dels ecosistemes

Per començar el nostre viatge per escollir el nostre proper processador, vam analitzar una àmplia gamma de CPU de diferents fabricants que s'adaptaven bé a la nostra pila de programari i serveis (escrits en C, LuaJIT i Go). Ja hem descrit amb detall un conjunt d'eines per mesurar la velocitat en un dels articles del nostre blog. En aquest cas, hem utilitzat el mateix conjunt: ens permet avaluar l'eficiència de la CPU en un temps raonable, després del qual els nostres enginyers poden començar a adaptar els nostres programes a un processador específic.

Hem provat una varietat de processadors amb una varietat de recomptes de nuclis, recomptes de sòcols i freqüències. Com que aquest article tracta sobre per què ens vam establir amb l'AMD EPYC 7642, tots els gràfics d'aquest bloc se centren en el rendiment dels processadors AMD en comparació amb l'Intel Xeon Platinum 6162 de la nostra novena generació.

Els resultats corresponen a mesuraments d'un sol servidor amb cada variant de processador, és a dir, amb dos processadors de 24 nuclis d'Intel, o amb un processador de 48 nuclis d'AMD (servidor per a Intel amb dos sòcols i servidor per a AMD EPYC amb un) . A la BIOS establim els paràmetres corresponents als servidors en execució. Això és de 3,03 GHz per a AMD i 2,5 GHz per a Intel. Simplificant molt, esperem que amb el mateix nombre de nuclis, AMD tingui un 21% millor que Intel.

Criptografia

Cloudflare tria processadors d'AMD per a servidors de desena generació

Cloudflare tria processadors d'AMD per a servidors de desena generació

Sembla prometedor per a AMD. Funciona un 18% millor en criptografia de clau pública. Amb una clau simètrica, perd les opcions de xifratge AES-128-GCM, però en general té un rendiment comparable.

Compressió

Als servidors perifèrics, comprimim moltes dades per estalviar ample de banda i augmentar la velocitat de lliurament de contingut. Passem les dades per les biblioteques C zlib i brotli. Totes les proves es van executar al fitxer HTML blog.cloudflare.com a la memòria.

Cloudflare tria processadors d'AMD per a servidors de desena generació

Cloudflare tria processadors d'AMD per a servidors de desena generació

AMD va guanyar una mitjana del 29% quan utilitzava gzip. En el cas del brotli, els resultats són encara millors en proves amb qualitat 7, que fem servir per a la compressió dinàmica. A la prova de brotli-9 hi ha una caiguda brusca; ho expliquem pel fet que Brotli consumeix molta memòria i desborda la memòria cau. Tanmateix, AMD guanya amb un gran marge.

Molts dels nostres serveis estan escrits a Go. Als gràfics següents, comprovem la velocitat de la criptografia i la compressió a Go with RegExp en línies de 32 KB mitjançant la biblioteca de cadenes.

Anar a la criptografia

Cloudflare tria processadors d'AMD per a servidors de desena generació

Anar Compressió

Cloudflare tria processadors d'AMD per a servidors de desena generació

Cloudflare tria processadors d'AMD per a servidors de desena generació

Anar expressió regular

Cloudflare tria processadors d'AMD per a servidors de desena generació

Cloudflare tria processadors d'AMD per a servidors de desena generació

Go Strings

Cloudflare tria processadors d'AMD per a servidors de desena generació

AMD té un millor rendiment en totes les proves amb Go excepte ECDSA P256 Sign, on va quedar un 38% endarrerit, cosa estranya, ja que va tenir un 24% millor en C. Val la pena esbrinar què hi passa. En general, AMD no guanya gaire, però encara mostra els millors resultats.

LuaJIT

Sovint fem servir LuaJIT a la pila. Aquesta és la cola que uneix totes les parts de Cloudflare. I estem contents que AMD també guanyés aquí.

En general, les proves mostren que l'EPYC 7642 funciona millor que dos Xeon Platinum 6162. AMD perd en un parell de proves, per exemple, AES-128-GCM i Go OpenSSL ECDSA-P256 Sign, però guanya en totes les altres, de mitjana. del 25%.

Simulació de càrrega de treball

Després de les nostres proves ràpides, vam executar els servidors mitjançant un altre conjunt de simulacions en què s'aplica una càrrega sintètica a la pila de vora del programari. Aquí simulem una càrrega de treball d'escenari amb diferents tipus de sol·licituds que es poden trobar en el treball real. Les sol·licituds varien en volum de dades, protocols HTTP o HTTPS, fonts WAF, treballadors i moltes altres variables. A continuació es mostra una comparació del rendiment de les dues CPU per als tipus de sol·licituds que ens trobem amb més freqüència.

Cloudflare tria processadors d'AMD per a servidors de desena generació

Els resultats del gràfic es mesuren amb la línia de base de les màquines basades en Intel de novena generació, normalitzada a un valor d'9 a l'eix x. Per exemple, prenent sol·licituds simples de 1,0 KiB a través d'HTTPS, podem veure que AMD ho fa 10 vegades millor que Intel en termes de sol·licituds per segon. De mitjana, AMD va tenir un 1,5% millor que Intel per a aquestes proves. Tenint en compte que el TDP d'un sol AMD EPYC 34 és de 7642 W, i per a dos processadors Intel és de 225 W, resulta que en termes de "sol·licituds per watt" AMD mostra 300 vegades millors resultats que Intel!

En aquest punt, ja estàvem clarament inclinats cap a l'opció de sòcol únic per a l'AMD EPYC 7642 com a futures CPU de la Gen X. Estàvem molt interessats en veure com funcionarien els servidors AMD EPYC en el treball real i de seguida vam enviar diversos servidors a alguns dels centres de dades.

Treball real

El primer pas, naturalment, va ser preparar els servidors per treballar en condicions reals. Totes les màquines de la nostra flota funcionen amb els mateixos processos i serveis, la qual cosa ofereix una excel·lent oportunitat per comparar correctament el rendiment. Com la majoria de centres de dades, tenim diverses generacions de servidors desplegades i recollim els nostres servidors en clústers perquè cada classe contingui servidors d'aproximadament les mateixes generacions. En alguns casos, això pot donar lloc a corbes de reciclatge que difereixen entre clústers. Però no amb nosaltres. Els nostres enginyers han optimitzat la utilització de la CPU per a totes les generacions de manera que, independentment de si la CPU d'una màquina concreta té 8 nuclis o 24, la utilització de la CPU és generalment la mateixa que la resta.

Cloudflare tria processadors d'AMD per a servidors de desena generació

El gràfic il·lustra el nostre comentari sobre la similitud d'utilització: no hi ha cap diferència significativa entre l'ús de CPU AMD als servidors de la generació X i l'ús de processadors Intel als servidors de la generació 9. Això vol dir que tant els servidors de prova com de base es carreguen igual. . Genial. Això és exactament el que ens esforcem als nostres servidors, i ho necessitem per a una comparació justa. Els dos gràfics següents mostren el nombre de sol·licituds processades per un nucli de CPU i tots els nuclis a nivell de servidor.

Cloudflare tria processadors d'AMD per a servidors de desena generació
Peticions per nucli

Cloudflare tria processadors d'AMD per a servidors de desena generació
Sol·licituds al servidor

Es pot veure que, de mitjana, AMD processa un 23% més de sol·licituds. No està gens malament! Sovint hem escrit al nostre bloc sobre maneres d'augmentar el rendiment de Gen 9. I ara tenim el mateix nombre de nuclis, però AMD treballa més amb menys potència. A partir de les especificacions de nombre de nuclis i TDP, queda clar immediatament que AMD proporciona una major velocitat amb una major eficiència energètica.

Però com ja hem comentat, TDP no és una especificació estàndard i no és el mateix per a tots els fabricants, així que mirem l'ús real d'energia. Mitjançant la mesura del consum d'energia del servidor en paral·lel amb el nombre de peticions per segon, hem obtingut el gràfic següent:

Cloudflare tria processadors d'AMD per a servidors de desena generació

Segons les sol·licituds per segon per watt gastat, els servidors Gen X que s'executen amb processadors AMD són un 28% més eficients. Es podria esperar més, atès que el TDP d'AMD és un 25% inferior, però cal recordar que el TDP és una característica ambigua. Hem vist que el consum d'energia real d'AMD és gairebé idèntic al TDP indicat a freqüències molt superiors a la base; Intel no té això. Aquesta és una altra raó per la qual el TDP no és una estimació fiable del consum d'energia. Les CPU d'Intel als nostres servidors Gen 9 s'integren en un sistema multinode, mentre que les CPU d'AMD funcionen en servidors de factor de forma 1U estàndard. Això no està a favor d'AMD, ja que els servidors multinodes haurien de proporcionar una densitat més gran amb menys consum d'energia per node, però AMD encara va superar Intel en termes de consum d'energia per node.

En la majoria de comparacions entre especificacions, simulacions de proves i rendiment en el món real, la configuració 1P AMD EPYC 7642 va funcionar significativament millor que l'Intel Xeon 2 6162P. En algunes condicions, AMD pot tenir un rendiment fins a un 36% millor, i creiem que optimitzant maquinari i programari, podem aconseguir aquesta millora de manera contínua.

Resulta que AMD va guanyar.

Els gràfics addicionals mostren la latència mitjana i la latència p99 amb NGINX durant un període de 24 hores. De mitjana, els processos a AMD van funcionar un 25% més ràpid. A la p99 funciona un 20-50% més ràpid depenent de l'hora del dia.

Conclusió

Els enginyers de maquinari i rendiment de Cloudflare fan una quantitat important de proves i investigacions per determinar la millor configuració del servidor per als nostres clients. Ens encanta treballar aquí perquè podem resoldre grans problemes com aquests i podem ajudar-vos a resoldre els vostres problemes amb serveis com ara la informàtica sense servidor i una sèrie de solucions de seguretat com Magic Transit, Argo Tunnel i protecció DDoS. . Tots els servidors de la xarxa Cloudflare estan configurats per funcionar de manera fiable i sempre estem intentant que cada generació següent de servidors sigui millor que l'anterior. Creiem que l'AMD EPYC 7642 és la resposta quan es tracta de processadors Gen X.

Amb Cloudflare Workers, els desenvolupadors despleguen les seves aplicacions a la nostra xarxa en expansió arreu del món. Estem orgullosos de deixar que els nostres clients es concentrin a escriure codi mentre nosaltres ens centrem en la seguretat i la fiabilitat al núvol. I avui estem encara més contents d'anunciar que el seu treball es desplegarà als nostres servidors de la generació X amb processadors AMD EPYC de segona generació.

Cloudflare tria processadors d'AMD per a servidors de desena generació
Processadors EPYC 7642, nom en clau "Roma" [Roma]

Mitjançant l'ús de l'EPYC 7642 d'AMD, hem pogut augmentar el nostre rendiment i facilitar l'expansió de la nostra xarxa a noves ciutats. Roma no es va construir en un dia, però aviat estarà més a prop de molts de vosaltres.

En els últims dos anys hem estat experimentant amb molts xips x86 d'Intel i AMD, així com amb processadors d'ARM. Esperem que aquests fabricants de CPU continuïn treballant amb nosaltres en el futur perquè tots puguem construir una Internet millor junts.

Font: www.habr.com

Afegeix comentari