Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Mila milioi IP helbide bakar baino gehiago igarotzen dira Cloudflare Saretik egunero; segundoko 11 milioi HTTP eskaera baino gehiago betetzen ditu; Interneteko biztanleriaren %100etik 95 ms-ra dago. Gure sareak 200 herrialde baino gehiagotako 90 hiri hartzen ditu, eta gure ingeniari taldeak azpiegitura oso azkar eta fidagarria eraiki du.

Oso harro gaude gure lanaz eta Internet leku hobea eta seguruagoa izaten laguntzeko konpromisoa hartzen dugu. Cloudflare-ren hardware-ingeniariek zerbitzariak eta haien osagaiak ulertze sakona dute, bere errendimendua maximizatzeko hardware onena ulertzeko eta hautatzeko.

Gure software-pilak karga handiko konputazioa kudeatzen du eta PUZaren menpekoa da, eta gure ingeniariek Cloudflare-ren eraginkortasuna eta fidagarritasuna etengabe optimizatu behar dituzte pilaren maila guztietan. Zerbitzariaren aldetik, prozesatzeko potentzia handitzeko modurik errazena CPU nukleoak gehitzea da. Zenbat eta nukleo gehiago sartu zerbitzari batek, orduan eta datu gehiago prozesatu ditzake. Hau garrantzitsua da guretzat, gure produktu eta bezeroen barietatea hazten ari delako denborarekin, eta eskaeren hazkundeak zerbitzarien errendimendu handiagoa eskatzen duelako. Haien errendimendua areagotzeko, nukleoen dentsitatea areagotu behar genuen, eta horixe da lortu genuena. Jarraian, 2015az geroztik zabaldu ditugun zerbitzarien prozesadoreei buruzko datu zehatzak eskaintzen ditugu, nukleo kopurua barne:

-
Gen 6
Gen 7
Gen 8
Gen 9

Pizten
2015
2016
2017
2018

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

Nukleo fisikoak
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 nukleo bakoitzeko
10.65W
8.50W
7.08W
6.25W

2018an, jauzi handia egin genuen zerbitzari bakoitzeko nukleoen kopuru osoan 9. belaunaldiarekin. Ingurumen-inpaktua % 33 murriztu da 8. belaunaldiarekin alderatuta, eta bastidore bakoitzeko bolumena eta konputazio-potentzia handitzeko aukera eman digu. Diseinu-baldintzak beroa xahutzeko (Diseinu termikoko potentzia, TDP) aipatzen dira gure energia-eraginkortasuna ere handitu egin dela denboran zehar. Adierazle hau garrantzitsua da guretzat: lehenik, karbono gutxiago isuri nahi dugu atmosferara; bigarrenik, datu-zentroetako energia ahalik eta gehien aprobetxatu nahi dugu. Baina badakigu badugula zerbait ahalegintzeko.

Gure definizio metrika nagusia watt bakoitzeko eskaera kopurua da. Nukleoak gehituz segundoko eskaera kopurua handitu dezakegu, baina gure potentzia aurrekontuaren barruan egon behar dugu. Datu-zentroko potentzia-azpiegiturak mugatuta gaude, zeinak, aukeratutako elektrizitatea banatzeko moduluekin batera, zerbitzariaren rack bakoitzeko goiko muga jakin bat ematen diguna. Rack batean zerbitzariak gehitzeak energia-kontsumoa areagotzen du. Funtzionamendu kostuak nabarmen handituko dira bastidore bakoitzeko energia-muga gainditzen badugu eta bastidore berriak gehitu behar baditugu. Prozesatzeko potentzia handitu behar dugu, energia-kontsumoaren barruti berean mantenduz, eta horrek watt bakoitzeko eskaerak areagotuko ditu, gure funtsezko metrika.

Asmatuko zenuten bezala, diseinuaren fasean arreta handiz aztertu genuen energia-kontsumoa. Goiko taulak erakusten du ez dugula denbora galdu behar energia goseko CPU gehiago zabaltzen, nukleo bakoitzeko TDP egungo belaunaldikoa baino handiagoa bada; horrek eragin negatiboa izango du gure metrika, watt bakoitzeko eskaerak. Arretaz aztertu genituen gure X belaunaldiko merkatuan martxan jartzeko prest dauden sistemak eta erabaki bat hartu genuen. Gure 48 nukleoko Intel Xeon Platinum 6162 socket bikoitzeko diseinutik 48 nukleoko AMD EPYC 7642 socket bakarreko diseinura igaroko gara.

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

mikroarkitektura
"Skylake"
"Zen 2"

Kodearen izena
Skylake SP
β€œErroma”

Prozesu teknikoa
14nm
7nm

nukleoak
2 24 x
48

maiztasuna
1.9 GHz
2.4 GHz

L3 Cachea/socketa
24 x 1.375 MiB
16 x 16 MiB

Memoria/entxufea
6 kanal, DDR4-2400 arte
8 kanal, DDR4-3200 arte

TDP
2 x 150W
225W

PCIe/socketa
48 errei
128 errei

ISA
x86-64
x86-64

Zehaztapenetatik argi dago AMDren txipak nukleo kopuru bera mantentzeko aukera emango digula TDP-a jaisten den bitartean. 9. belaunaldiak 6,25 W-ko TDP bat zuen nukleo bakoitzeko, eta X. belaunaldiak 4,69 W-koa izango da. %25 murriztu da. Frekuentzia handituari eta, agian, socket bakarra duen diseinu sinpleari esker, AMD txipak praktikan hobeto funtzionatuko duela pentsa daiteke. Momentu honetan hainbat proba eta simulazio egiten ari gara AMD-k zenbat hobeto funtzionatuko duen ikusteko.

Oraingoz, kontuan izan dezagun TDP fabrikatzailearen zehaztapenen metrika sinplifikatu bat dela, zerbitzariaren diseinuaren eta PUZaren hautapenaren hasierako faseetan erabili genuena. Google-ren bilaketa azkar batek agerian uzten du AMDk eta Intelek TDP definitzeko ikuspegi desberdinak dituztela, eta zehaztapena fidagarria ez da. PUZaren benetako energia-kontsumoa eta, are garrantzitsuagoa dena, zerbitzariaren energia-kontsumoa, gure azken erabakia hartzerakoan benetan erabiltzen duguna da.

Ekosistemen prestutasuna

Gure hurrengo prozesadorea aukeratzeko gure bidaia hasteko, fabrikatzaile ezberdinetako PUZ sorta zabala aztertu dugu, gure software pila eta zerbitzuetarako (C, LuaJIT eta Go idatzita) egokiak zirenak. Abiadura neurtzeko tresna multzo bat zehatz deskribatu dugu jada gure blogeko artikulu batean. Kasu honetan, multzo bera erabili dugu - CPUaren eraginkortasuna arrazoizko denbora batean ebaluatzeko aukera ematen digu, eta, ondoren, gure ingeniariak gure programak prozesadore zehatz batera egokitzen has daitezke.

Askotariko prozesadore probatu ditugu nukleo-zenbaketa, socket-kopuru eta maiztasun ezberdinekin. Artikulu honek AMD EPYC 7642-n zergatik finkatu garen azaltzen denez, blog honetako grafiko guztiek AMD prozesadoreek Intel Xeon Platinum 6162-rekin alderatuta nola funtzionatzen duten aztertzen dute. gure 9. belaunaldia.

Emaitzak prozesadorearen aldaera bakoitzarekin zerbitzari bakar baten neurketei dagozkie, hau da, Intel-en 24 nukleoko bi prozesadorerekin, edo AMDren 48 nukleoko prozesadore batekin (Intelentzako zerbitzaria bi entxuferekin eta AMD EPYCrako zerbitzari batekin) . BIOSan martxan dauden zerbitzariei dagozkien parametroak ezartzen ditugu. Hau 3,03 GHz da AMDrentzat eta 2,5 GHz Intelentzat. Asko sinplifikatuz, espero dugu nukleo kopuru berdinarekin AMD Intelek baino % 21 hobea izango duela.

Kriptografia

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

AMDrentzat itxaropentsua dirudi. Gako publikoen kriptografian % 18 hobea da. Gako simetrikoarekin, AES-128-GCM enkriptatzeko aukerak galtzen ditu, baina orokorrean konparagarria da.

Konpresioa

Ertz zerbitzarietan, datu asko konprimitzen ditugu banda-zabalera aurrezteko eta edukia bidaltzeko abiadura handitzeko. Datuak zlib eta brotli C liburutegietatik pasatzen ditugu. Proba guztiak memorian dagoen blog.cloudflare.com HTML fitxategian exekutatu ziren.

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

AMDk batez beste %29 irabazi zuen gzip erabiltzean. Brotliaren kasuan, emaitzak are hobeak dira, 7 kalitatea duten probetan, konpresio dinamikorako erabiltzen ditugunak. Brotli-9 proban beherakada handia dago - hau Brotlik memoria asko kontsumitzen duela eta cachea gainezkatzen duela azaltzen dugu. Hala ere, AMDk alde handiarekin irabazi du.

Gure zerbitzu asko Go-n idatzita daude. Hurrengo grafikoetan, kriptografiaren eta konpresioaren abiadura birkoiztu egiten dugu Go with RegExp-en 32 KB-ko lerroetan kateen liburutegia erabiliz.

Joan kriptografia

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Joan Konpresioa

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Joan Regexp

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Go Strings

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

AMD-k Go-rekin proba guztietan errendimendu hobea du ECDSA P256 Sign izan ezik, non % 38 atzean geratu zen - hori bitxia da, C-n % 24 hobea izan baitzen. Merezi du hor zer gertatzen den asmatzea. Orokorrean, AMDk ez du asko irabazten, baina oraindik ere emaitza onenak erakusten ditu.

LuaJIT

Askotan LuaJIT erabiltzen dugu pilan. Hau da Cloudflare-ren zati guztiak elkarrekin eusten dituen kola. Eta pozten gara AMD-k hemen ere irabazi zuelako.

Orokorrean, probek erakusten dute EPYC 7642 bi Xeon Platinum 6162 baino errendimendu hobea egiten duela. AMD proba batzuetan galtzen da -adibidez, AES-128-GCM eta Go OpenSSL ECDSA-P256 Sign- baina beste guztietan irabazten du, batez beste. %25ekoa.

Lan-kargaren simulazioa

Gure proba azkarren ondoren, zerbitzariak beste simulazio-multzo baten bidez exekutatu ditugu, non karga sintetikoa aplikatzen zaio softwarearen ertzeko pilari. Hemen lan errealean aurki daitezkeen eskaera mota ezberdinekin eszenatoki bat simulatzen dugu. Eskaerak datuen bolumena, HTTP edo HTTPS protokoloak, WAF iturriak, Langileak eta beste aldagai askoren araberakoak dira. Jarraian, bi CPUren errendimenduaren konparaketa dago gehien topatzen ditugun eskaera motetarako.

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Grafikoko emaitzak 9. belaunaldiko Intel-en oinarritutako makinen oinarrizko lerroarekin neurtzen dira, x ardatzean 1,0 balioarekin normalizatuta. Adibidez, HTTPS bidez 10 KiB eskaera sinpleak hartuta, AMD Intelek baino 1,5 aldiz hobeto egiten duela ikus dezakegu segundoko eskaerei dagokienez. Batez beste, AMD-k Intelek baino % 34 hobea egin zuen proba hauetan. AMD EPYC 7642 bakarreko TDP-a 225 W-koa dela eta bi Intel-eko prozesadorerentzat 300 W-koa dela kontuan hartuta, "watt bakoitzeko eskaerei" dagokionez, AMD-k Intelek baino 2 aldiz emaitza hobeak erakusten ditu!

Une honetan, jada argi eta garbi geunden AMD EPYC 7642-ren socket bakarreko aukeraren alde gure etorkizuneko Gen X CPU gisa. Oso interesatuta geunden ikustea AMD EPYC zerbitzariek nola funtzionatuko zuten mundu errealeko lanean, eta berehala bidali genituen hainbat zerbitzari batzuei datu-zentroetatik.

Benetako lana

Lehen urratsa, jakina, zerbitzariak baldintza errealetan lan egiteko prestatzea izan zen. Gure flotako makina guztiek prozesu eta zerbitzu berdinekin lan egiten dute, eta horrek aukera bikaina eskaintzen du errendimendua behar bezala alderatzeko. Datu-zentro gehienek bezala, hainbat belaunalditako zerbitzariak ditugu zabalduta, eta gure zerbitzariak klusteretan biltzen ditugu, klase bakoitzak gutxi gorabehera belaunaldi bereko zerbitzariak izan ditzan. Zenbait kasutan, klusterren artean desberdinak diren birziklapen kurbak sor ditzake. Baina ez gurekin. Gure ingeniariek PUZaren erabilera optimizatu dute belaunaldi guztietarako, beraz, makina jakin baten PUZak 8 nukleo edo 24 dituen ala ez, PUZaren erabilera oro har gainerakoen berdina da.

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Grafikoak erabileraren antzekotasunari buruzko gure iruzkina erakusten du - ez dago alde handirik AMD PUZaren erabileraren artean X belaunaldiko zerbitzarietan eta Intel prozesadoreen erabileraren artean 9. belaunaldiko zerbitzarietan. Horrek esan nahi du proba eta oinarrizko zerbitzariak berdin kargatzen direla. . Bikaina. Horixe da gure zerbitzarietan bilatzen duguna, eta hori behar dugu konparazio justu baterako. Beheko bi grafikoek PUZaren nukleo batek eta zerbitzari mailan nukleo guztiek prozesatutako eskaera kopurua erakusten dute.

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako
Nukleo bakoitzeko eskaerak

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako
Zerbitzariari egindako eskaerak

Ikus daiteke batez beste AMD-k %23 eskaera gehiago prozesatzen dituela. Ez dago batere gaizki! Askotan idatzi dugu gure blogean 9. belaunaldiaren errendimendua handitzeko moduei buruz. Eta orain nukleo kopuru bera dugu, baina AMD-k lan gehiago egiten du potentzia gutxiagorekin. Berehala argi dago nukleo kopuruaren eta TDPren zehaztapenetan AMD-k abiadura handiagoa ematen duela energia eraginkortasun handiagoarekin.

Baina lehen aipatu dugun bezala, TDP ez da zehaztapen estandarra eta ez da berdina fabrikatzaile guztientzat, beraz, ikus dezagun benetako energiaren erabilera. Zerbitzariaren energia-kontsumoa segundoko eskaera kopuruarekin paraleloan neurtuz, grafiko hau lortu dugu:

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako

Gastutako watt bakoitzeko segundoko eskaeren arabera, AMD prozesadoreetan exekutatzen diren X Geneko zerbitzariak % 28 eraginkorragoak dira. Gehiago espero zitekeen, AMDren TDP % 25 baxuagoa dela kontuan hartuta, baina gogoratu behar da TDP ezaugarri anbiguoa dela. Ikusi dugu AMDren benetako energia-kontsumoa adierazitako TDP-aren ia berdina dela oinarria baino maiztasun askoz altuagoetan; Intelek ez du hori. Hau da TDP energia-kontsumoaren estimazio fidagarria ez izatearen beste arrazoi bat. Gure Gen 9 zerbitzarietako Intel-en CPUak nodo anitzeko sistema batean integratuta daude, eta AMDren CPUak 1U forma-faktorearen zerbitzari estandarretan funtzionatzen dute. Hau ez da AMDren aldekoa, nodo anitzeko zerbitzariek dentsitate handiagoa eman beharko lukete nodo bakoitzeko energia-kontsumo gutxiagorekin, baina AMD-k Intel gainditu zuen oraindik nodo bakoitzeko energia-kontsumoari dagokionez.

Zehaztapenen, proba-simulazioen eta mundu errealeko errendimenduen arteko konparaketa gehienetan, 1P AMD EPYC 7642 konfigurazioa 2P Intel Xeon 6162 baino nabarmen hobeagoa izan da. Baldintza batzuetan, AMD-k % 36 hobe dezakeela uste dugu, optimizatuz. hardware eta software, hobekuntza hori etengabe lor dezakegu.

AMDek irabazi zuen.

Grafiko gehigarriek NGINX exekutatzen duten batez besteko latentzia eta p99 latentzia erakusten dute 24 orduko epean. Batez beste, AMD-ko prozesuak % 25 azkarrago ibili ziren. p99-n % 20-50 azkarrago dabil eguneko orduaren arabera.

Ondorioa

Cloudflare-ren Hardware eta Performance ingeniariek proba eta ikerketa ugari egiten dituzte gure bezeroentzako zerbitzariaren konfigurazio onena zehazteko. Hemen lan egitea gustatzen zaigu, horrelako arazo handiak ebatzi ditzakegulako, eta zerbitzaririk gabeko edge computing bezalako zerbitzuekin eta Magic Transit, Argo Tunnel eta DDoS babesa bezalako segurtasun-soluzio sorta batekin zure arazoak konpontzen lagunduko dizugu. Cloudflare sareko zerbitzari guztiak fidagarritasunez funtzionatzeko konfiguratuta daude, eta hurrengo zerbitzarien belaunaldi bakoitza aurrekoa baino hobea izaten saiatzen ari gara beti. AMD EPYC 7642 Gen X prozesadoreei dagokienez erantzuna dela uste dugu.

Cloudflare Workers erabiliz, garatzaileek beren aplikazioak zabaltzen dituzte mundu osoko gure sare zabalean. Harro gaude gure bezeroei kodea idaztera bideratzen uzten diegulako segurtasuna eta fidagarritasuna hodeian arreta jartzen dugun bitartean. Eta gaur are poz handiagoarekin iragartzen dugu haien lana bigarren belaunaldiko AMD EPYC prozesadoreak dituzten gure X belaunaldiko zerbitzarietan zabalduko dela.

Cloudflare-k AMDren prozesadoreak aukeratzen ditu hamargarren belaunaldiko ertzeko zerbitzarietarako
EPYC 7642 prozesadoreak, kode-izena "Erroma" [Erroma]

AMD-ren EPYC 7642 erabiliz, gure errendimendua areagotu eta gure sarea hiri berrietara zabaltzea erraztu genuen. Erroma ez zen egun batean eraiki, baina laster zuetako askorengandik hurbilago egongo da.

Azken bi urteetan Intel eta AMD-ren x86 txip askorekin esperimentatzen ari gara, baita ARM-eko prozesadoreekin ere. PUZ-ekoizle hauek etorkizunean gurekin lanean jarraitzea espero dugu, guztiok elkarrekin Internet hobea eraikitzeko.

Iturria: www.habr.com

Gehitu iruzkin berria