Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Pli ol miliardo da unikaj IP-adresoj pasas tra la Reto Cloudflare ĉiutage; ĝi servas pli ol 11 milionojn da HTTP-petoj sekundo; ŝi estas ene de 100ms de 95% de la interreta populacio. Nia reto ampleksas 200 urbojn en pli ol 90 landoj, kaj nia teamo de inĝenieroj konstruis ekstreme rapidan kaj fidindan infrastrukturon.

Ni tre fieras pri nia laboro kaj kompromitas helpi fari Interreton pli bona kaj pli sekura loko. La aparataj inĝenieroj de Cloudflare havas profundan komprenon pri serviloj kaj iliaj komponantoj por kompreni kaj elekti la plej bonan aparataron por maksimumigi ĝian rendimenton.

Nia programaro pritraktas altŝarĝan komputadon kaj estas tre dependa de CPU, postulante niajn inĝenierojn kontinue optimumigi la efikecon kaj fidindecon de Cloudflare ĉe ĉiu nivelo de la stako. Ĉe la servilo, la plej facila maniero pliigi pretigpovon estas aldonante CPU-kernojn. Ju pli da kernoj servilo povas konveni, des pli da datumoj ĝi povas prilabori. Ĉi tio gravas por ni ĉar la vario de niaj produktoj kaj klientoj kreskas laŭlonge de la tempo, kaj la kresko de petoj postulas pliigitan rendimenton de serviloj. Por pliigi ilian rendimenton, ni bezonis pliigi la densecon de la kernoj - kaj ĝuste tion ni atingis. Malsupre ni provizas detalajn datumojn pri procesoroj por serviloj, kiujn ni deplojis ekde 2015, inkluzive de la nombro da kernoj:

-
Gen 6
Gen 7
Gen 8
Gen 9

Kiel ekuzi
2015
2016
2017
2018

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

Fizikaj kernoj
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 kerno
10.65W
8.50W
7.08W
6.25W

En 2018, ni faris grandan salton en la tuta nombro da kernoj per servilo kun Gen 9. La media efiko estis reduktita je 33% kompare kun la 8-a generacio, donante al ni la ŝancon pliigi volumon kaj komputikan potencon per rako. Dezajnopostuloj por varmodissipado (Termika Projekta Potenco, TDP) estas menciitaj por reliefigi ke nia energiefikeco ankaŭ pliiĝis dum tempo. Ĉi tiu indikilo estas grava por ni: unue, ni volas elsendi malpli da karbono en la atmosferon; due, ni volas fari la plej bonan uzon de la energio de la datumcentroj. Sed ni scias, ke ni havas ion por strebi.

Nia ĉefa difina metriko estas la nombro da petoj por vato. Ni povas pliigi la nombron da petoj por sekundo aldonante kernojn, sed ni devas resti ene de nia pova buĝeto. Ni estas limigitaj de la datumcentra potenca infrastrukturo, kiu, kune kun niaj elektitaj elektraj distribuaj moduloj, donas al ni certan supran limon por ĉiu servila rako. Aldonante servilojn al rako pliigas energikonsumon. Funkciaj kostoj pliiĝos signife se ni superos la po-raka energilimon kaj devos aldoni novajn rakojn. Ni devas pliigi pretigpovon restante ene de la sama elektra konsumo, kio pliigos petojn per vato, nia ŝlosila metriko.

Kiel vi eble divenis, ni zorge studis energian konsumon en la dezajna etapo. La supra tabelo montras, ke ni ne malŝparu tempon por disfaldi pli da energi-malsataj CPU-oj se la TDP per kerno estas pli alta ol la nuna generacio - ĉi tio negative influos nian metrikon, petojn po vato. Ni zorge studis la pretajn por funkciigi sistemojn por nia generacio X sur la merkato kaj faris decidon. Ni transiras de nia 48-kerna Intel Xeon Platinum 6162 duobla ingo-dezajno al 48-kerna AMD EPYC 7642-unuoka dezajno.

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

-
intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

mikroarkitekturo
"Skylake"
"Zen 2"

Kodnomo
"Skylake SP"
"Romo"

Proceza teknologio
14nm
7nm

kernoj
2 x 24
48

Ofteco
1.9 GHz
2.4 GHz

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

Memoro/ingo
6 kanaloj, ĝis DDR4-2400
8 kanaloj, ĝis DDR4-3200

TDP
2 x 150W
225W

PCIe/soko
48 lenoj
128 lenoj

ESTAS
x86-64
x86-64

De la specifoj estas klare, ke la blato de AMD permesos al ni konservi la saman nombron da kernoj dum malaltiĝo de la TDP. La 9-a generacio havis TDP per kerno de 6,25 W, kaj la X-a generacio ĝi estos 4,69 W. Reduktita je 25%. Danke al la pliigita frekvenco, kaj eble pli simpla dezajno kun unu ingo, oni povas supozi, ke la AMD-blato funkcios pli bone en la praktiko. Ni nuntempe faras diversajn testojn kaj simuladojn por vidi kiom pli bone AMD funkcios.

Nuntempe, ni notu, ke TDP estas simpligita metriko de la specifoj de la fabrikanto, kiujn ni uzis en la fruaj stadioj de servila dezajno kaj elekto de CPU. Rapida serĉo de Google rivelas, ke AMD kaj Intel havas malsamajn alirojn al difinado de TDP, igante la specifon nefidinda. Reala CPU-potencokonsumo, kaj pli grave, servila elektrokonsumo, estas tio, kion ni vere uzas kiam ni faras nian finan decidon.

Ekosistempreteco

Por komenci nian vojaĝon por elekti nian sekvan procesoron, ni rigardis ampleksan gamon da CPU-oj de malsamaj fabrikantoj, kiuj bone taŭgas por nia programaro kaj servoj (skribitaj en C, LuaJIT kaj Go). Ni jam detale priskribis aron da iloj por mezuri rapidecon en unu el niaj blogaj artikoloj. En ĉi tiu kazo, ni uzis la saman aron - ĝi permesas al ni taksi la efikecon de la CPU en racia tempo, post kiu niaj inĝenieroj povas komenci adapti niajn programojn al specifa procesoro.

Ni testis diversajn procesorojn kun diversaj kernaj nombroj, ingoj kaj frekvencoj. Ĉar ĉi tiu artikolo temas pri kial ni decidiĝis sur la AMD EPYC 7642, ĉiuj furoraĵoj en ĉi tiu blogo fokusiĝas pri kiel AMD-procesoroj funkcias kompare kun la Intel Xeon Platinum 6162 de nia 9-a generacio.

La rezultoj respondas al mezuradoj de unu servilo kun ĉiu varianto de procesoro - tio estas, kun du 24-kernaj procesoroj de Intel, aŭ kun unu 48-kerna procesoro de AMD (servilo por Intel kun du ingoj kaj servilo por AMD EPYC kun unu). En la BIOS ni fiksas la parametrojn respondajn al la kurantaj serviloj. Ĉi tio estas 3,03 GHz por AMD kaj 2,5 GHz por Intel. Simpligante multe, ni atendas, ke kun la sama nombro da kernoj, AMD plenumos 21% pli bone ol Intel.

Kriptografio

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Aspektas promesplena por AMD. Ĝi agas 18% pli bone pri publika ŝlosila kripto. Kun simetria ŝlosilo, ĝi perdas por la ĉifradaj elektoj de AES-128-GCM, sed ĝenerale funkcias komparebla.

Kunpremo

Sur randserviloj, ni kunpremas multajn datumojn por ŝpari bendolarĝon kaj pliigi la rapidecon de enhavo livero. Ni pasas la datumojn tra la C-bibliotekoj zlib kaj brotli. Ĉiuj testoj estis rulitaj sur la blog.cloudflare.com HTML-dosiero en memoro.

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

AMD gajnis mezume 29% kiam oni uzas gzip. En la kazo de brotli, la rezultoj estas eĉ pli bonaj ĉe testoj kun kvalito 7, kiun ni uzas por dinamika kunpremo. En la testo brotli-9 estas akra guto - ni klarigas tion per la fakto, ke Brotli konsumas multe da memoro kaj superfluas la kaŝmemoron. Tamen, AMD gajnas je granda marĝeno.

Multaj el niaj servoj estas skribitaj en Go. En la sekvaj grafikaĵoj, ni duoble kontrolas la rapidecon de kripto kaj kunpremo en Go with RegExp sur 32 KB-linioj uzante la kordbibliotekon.

Iru kriptografion

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Iru Kunpremado

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Iru Regexp

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Iru Ŝnuroj

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

AMD funkcias pli bone en ĉiuj testoj kun Go krom ECDSA P256 Sign, kie ĝi estis 38% malantaŭe - kio estas stranga, ĉar ĝi rezultis 24% pli bone en C. Indas eltrovi kio okazas tie. Ĝenerale, AMD ne gajnas multon, sed ankoraŭ montras la plej bonajn rezultojn.

LuaJIT

Ni ofte uzas LuaJIT sur la stako. Ĉi tio estas la gluo, kiu tenas ĉiujn partojn de Cloudflare kune. Kaj ni ĝojas, ke ankaŭ AMD venkis ĉi tie.

Ĝenerale, la testoj montras, ke la EPYC 7642 funkcias pli bone ol du Xeon Platinum 6162. AMD perdas dum kelkaj provoj - ekzemple AES-128-GCM kaj Go OpenSSL ECDSA-P256 Sign - sed gajnas en ĉiuj aliaj, averaĝe. de 25 %.

Simulado de Laborŝarĝo

Post niaj rapidaj provoj, ni kuris la servilojn tra alia aro de simulaĵoj, en kiuj sinteza ŝarĝo estas aplikata al la programara rando-stako. Ĉi tie ni simulas scenaran laborŝarĝon kun malsamaj specoj de petoj, kiuj povas esti renkontitaj en reala laboro. Petoj varias laŭ datumvolumo, HTTP aŭ HTTPS-protokoloj, WAF-fontoj, Laboristoj kaj aliaj multaj variabloj. Malsupre estas komparo de la trairo de la du CPU-oj por la specoj de petoj, kiujn ni plej ofte renkontas.

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

La rezultoj en la diagramo estas mezuritaj kontraŭ la bazlinio de 9-a generacio Intel-bazitaj maŝinoj, normaligitaj al valoro de 1,0 sur la x-akso. Ekzemple, prenante simplajn 10 KiB-petojn per HTTPS, ni povas vidi, ke AMD faras 1,5 fojojn pli bone ol Intel rilate al petoj por sekundo. Averaĝe, AMD elfaris 34% pli bone ol Intel por ĉi tiuj testoj. Konsiderante, ke la TDP por ununura AMD EPYC 7642 estas 225 W, kaj por du Intel-procesoroj estas 300 W, rezultas, ke laŭ "petoj por vato" AMD montras 2 fojojn pli bonajn rezultojn ol Intel!

Je ĉi tiu punkto, ni jam klare klinis al la unuopa opcio por la AMD EPYC 7642 kiel niaj estontaj CPU-oj Gen X. Ni tre interesiĝis vidi kiel la AMD EPYC-serviloj funkcios en reala laboro, kaj ni tuj sendis plurajn serviloj al iuj el datumcentroj.

Vera laboro

La unua paŝo, nature, estis prepari la servilojn por laboro en realaj kondiĉoj. Ĉiuj maŝinoj en nia floto funkcias kun la samaj procezoj kaj servoj, kio donas bonegan ŝancon ĝuste kompari rendimenton. Kiel plej multaj datumcentroj, ni havas plurajn generaciojn de serviloj deplojitaj, kaj ni kolektas niajn servilojn en aretojn por ke ĉiu klaso enhavas servilojn de proksimume la samaj generacioj. En kelkaj kazoj, tio povas rezultigi reciklajn kurbojn kiuj malsamas inter aretoj. Sed ne ĉe ni. Niaj inĝenieroj optimumigis CPU-uzadon por ĉiuj generacioj tiel ke sendepende de ĉu la CPU de aparta maŝino havas 8 kernojn aŭ 24, CPU-uzado estas ĝenerale la sama kiel la resto.

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

La grafikaĵo ilustras nian komenton pri la simileco de utiligo - ne estas grava diferenco inter la uzo de AMD-CPUoj en Gen X-generacia serviloj kaj la uzo de Intel-procesoroj en Gen 9-generacia serviloj. Ĉi tio signifas, ke ambaŭ testaj kaj bazliniaj serviloj estas ŝarĝitaj egale. . Bonege. Ĝuste por tio ni strebas en niaj serviloj, kaj ni bezonas ĉi tion por justa komparo. La du grafikaĵoj malsupre montras la nombron da petoj procesitaj de unu CPU-kerno kaj ĉiuj kernoj ĉe la servila nivelo.

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj
Petoj per kerno

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj
Petoj al la servilo

Oni povas vidi, ke averaĝe AMD procesas 23% pli da petoj. Tute ne malbone! Ni ofte skribis en nia blogo pri manieroj pliigi la rendimenton de Gen 9. Kaj nun ni havas la saman nombron da kernoj, sed AMD faras pli da laboro kun malpli da potenco. Estas tuj klare de la specifoj por la nombro da kernoj kaj TDP, ke AMD provizas pli grandan rapidecon kun pli granda energia efikeco.

Sed kiel ni jam menciis, TDP ne estas norma specifo kaj ĝi ne estas la sama por ĉiuj fabrikantoj, do ni rigardu la realan energiuzon. Mezurante la energikonsumon de la servilo paralele kun la nombro da petoj por sekundo, ni akiris la sekvan grafeon:

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj

Surbaze de petoj je sekundo je vato elspezita, Gen X-serviloj funkcianta per AMD-procesoroj estas 28% pli efikaj. Oni povus atendi pli, ĉar la TDP de AMD estas 25% pli malalta, sed oni devas memori, ke TDP estas ambigua trajto. Ni vidis, ke la reala energikonsumo de AMD estas preskaŭ identa al la deklarita TDP ĉe frekvencoj multe pli altaj ol la bazo; Intel ne havas tion. Ĉi tio estas alia kialo kial TDP ne estas fidinda takso de energikonsumo. CPU-oj de Intel en niaj serviloj Gen 9 estas integritaj en plurnodan sistemon, dum CPU-oj de AMD funkcias en normaj serviloj de formo 1U. Ĉi tio ne favoras AMD, ĉar plurnodaj serviloj devus provizi pli grandan densecon kun malpli da elektrokonsumo por nodo, sed AMD ankoraŭ preterpasis Intel laŭ energikonsumo per nodo.

En la plej multaj komparoj tra specifoj, testaj simuladoj kaj reala agado, la agordo 1P AMD EPYC 7642 rezultis signife pli bone ol la 2P Intel Xeon 6162. En iuj kondiĉoj, AMD povas plenumi ĝis 36% pli bone, kaj ni kredas tion optimumigante. aparataro kaj programaro, ni povas atingi ĉi tiun plibonigon daŭrante.

Ĝi rezultas, ke AMD venkis.

Pliaj grafikaĵoj montras averaĝan latentecon kaj p99-latentecon kurante NGINX dum 24-hora periodo. Averaĝe, procezoj sur AMD funkciis 25% pli rapide. Sur p99 ĝi funkcias 20-50% pli rapide depende de la horo de la tago.

konkludo

La inĝenieroj pri Aparataro kaj Performance de Cloudflare faras signifan kvanton da testado kaj esplorado por determini la plej bonan servilan agordon por niaj klientoj. Ni amas labori ĉi tie ĉar ni povas solvi grandajn problemojn kiel ĉi tiuj, kaj ni povas helpi vin solvi viajn problemojn kun servoj kiel senservila randa komputado kaj gamo da sekurecaj solvoj kiel Magic Transit, Argo Tunnel kaj protekto DDoS. . Ĉiuj serviloj en la reto Cloudflare estas agorditaj por plenumi fidinde, kaj ni ĉiam provas fari ĉiun sekvan generacion de serviloj pli bona ol la antaŭa. Ni kredas, ke la AMD EPYC 7642 estas la respondo kiam temas pri procesoroj Gen X.

Uzante Cloudflare Workers, programistoj deplojas siajn aplikojn sur nia vastiga reto tra la mondo. Ni fieras lasi niajn klientojn koncentriĝi pri skribi kodon dum ni koncentriĝas pri sekureco kaj fidindeco en la nubo. Kaj hodiaŭ ni eĉ pli ĝojas anonci, ke ilia laboro estos deplojita sur niaj Gen X-generaciaj serviloj kun duageneraciaj AMD EPYC-procesoroj.

Cloudflare elektas procesorojn de AMD por deka generaciaj randserviloj
EPYC 7642 procesoroj, kaŝnomo "Romo" [Romo]

Uzante EPYC 7642 de AMD, ni povis pliigi nian rendimenton kaj faciligi vastigi nian reton al novaj urboj. Romo ne estis konstruita en unu tago, sed ĝi baldaŭ estos pli proksima al multaj el vi.

En la lastaj du jaroj ni eksperimentis kun multaj x86-blatoj de Intel kaj AMD, same kiel procesoroj de ARM. Ni atendas, ke ĉi tiuj CPU-produktantoj daŭre kunlaboros kun ni estonte, por ke ni ĉiuj povu konstrui pli bonan Interreton kune.

fonto: www.habr.com

Aldoni komenton