Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Vsak dan gre skozi omrežje Cloudflare več kot milijarda edinstvenih naslovov IP; služi več kot 11 milijonom HTTP zahtev na sekundo; je znotraj 100 ms od 95 % internetne populacije. Naše omrežje obsega 200 mest v več kot 90 državah, naša ekipa inženirjev pa je zgradila izjemno hitro in zanesljivo infrastrukturo.

Zelo smo ponosni na svoje delo in smo predani temu, da bomo internet naredili boljši in varnejši. Inženirji strojne opreme Cloudflare dobro poznajo strežnike in njihove komponente, da razumejo in izberejo najboljšo strojno opremo za povečanje njene zmogljivosti.

Naš sklad programske opreme obvladuje visoko obremenjeno računalništvo in je močno odvisen od procesorja, kar od naših inženirjev zahteva nenehno optimizacijo učinkovitosti in zanesljivosti Cloudflare na vseh ravneh sklada. Na strani strežnika je najlažji način za povečanje procesorske moči z dodajanjem jeder CPU. Več jeder, kot jih lahko sprejme strežnik, več podatkov lahko obdela. To je za nas pomembno, ker raznolikost naših izdelkov in strank sčasoma narašča, rast zahtev pa zahteva večjo zmogljivost strežnikov. Da bi povečali njihovo zmogljivost, smo morali povečati gostoto jeder - in točno to nam je uspelo. Spodaj podajamo podrobne podatke o procesorjih za strežnike, ki smo jih uvedli od leta 2015, vključno s številom jeder:

-
Gen 6
Gen 7
Gen 8
Gen 9

Začetek
2015
2016
2017
2018

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

Fizična jedra
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 na jedro
10.65W
8.50W
7.08W
6.25W

Leta 2018 smo z Gen 9 naredili velik skok v skupnem številu jeder na strežnik. Vpliv na okolje je bil zmanjšan za 33 % v primerjavi z 8. generacijo, kar nam daje priložnost za povečanje količine in računalniške moči na omaro. Projektne zahteve za odvajanje toplote (Toplotna konstrukcijska moč, TDP) so omenjeni, da bi poudarili, da se je sčasoma povečala tudi naša energetska učinkovitost. Ta kazalnik je za nas pomemben: prvič, v ozračje želimo izpustiti manj ogljika; drugič, želimo čim bolje izkoristiti energijo iz podatkovnih centrov. Vemo pa, da si imamo za kaj prizadevati.

Naša glavna opredelitvena metrika je število zahtev na vat. Z dodajanjem jeder lahko povečamo število zahtev na sekundo, vendar moramo ostati v okviru proračuna za moč. Omejeni smo z napajalno infrastrukturo podatkovnega centra, ki nam skupaj z izbranimi napajalnimi razdelilnimi moduli daje določeno zgornjo mejo za posamezno strežniško omarico. Dodajanje strežnikov v omaro poveča porabo energije. Obratovalni stroški se bodo znatno povečali, če presežemo omejitev energije na omaro in bomo morali dodati nove omarice. Povečati moramo procesorsko moč, hkrati pa ostati v istem obsegu porabe energije, kar bo povečalo število zahtev na vat, našo ključno metriko.

Kot ste morda uganili, smo v fazi načrtovanja skrbno preučili porabo energije. Zgornja tabela kaže, da ne bi smeli izgubljati časa z uvajanjem energijsko bolj potratnih procesorjev, če je TDP na jedro višji od trenutne generacije – to bo negativno vplivalo na našo metriko, zahteve na vat. Natančno smo preučili pripravljene sisteme za našo generacijo X na trgu in sprejeli odločitev. Prehajamo z naše 48-jedrne zasnove Intel Xeon Platinum 6162 z dvojno vtičnico na 48-jedrno zasnovo z eno vtičnico AMD EPYC 7642.

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Mikroarhitektura
"Skylake"
"Zen 2"

Kodno ime
Skylake SP
"Rim"

Tehnični proces
14nm
7nm

jedra
X 2 24
48

Pogostost
1.9 GHz
2.4 GHz

Predpomnilnik/vtičnica L3
24 x 1.375 MiB
16 x 16 MiB

Pomnilnik/vtičnica
6 kanalov, do DDR4-2400
8 kanalov, do DDR4-3200

TDP
2 x 150W
225W

PCIe/vtičnica
48 pasov
128 pasov

ISA
x86-64
x86-64

Iz specifikacij je razvidno, da nam bo AMD-jev čip omogočil ohranitev enakega števila jeder ob znižanju TDP. 9. generacija je imela TDP na jedro 6,25 W, X. generacija pa bo 4,69 W. Znižano za 25 %. Zahvaljujoč povečani frekvenci in morda enostavnejši zasnovi z enim podnožjem je mogoče domnevati, da se bo čip AMD v praksi bolje obnesel. Trenutno izvajamo različne teste in simulacije, da vidimo, koliko boljši bo AMD.

Za zdaj omenimo, da je TDP poenostavljena metrika iz proizvajalčevih specifikacij, ki smo jo uporabili v zgodnjih fazah načrtovanja strežnika in izbire CPU. Hitro iskanje v Googlu razkrije, da imata AMD in Intel različne pristope k definiranju TDP, zaradi česar je specifikacija nezanesljiva. Dejanska poraba energije procesorja in še pomembneje poraba energije strežnika je tisto, kar dejansko upoštevamo pri sprejemanju končne odločitve.

Pripravljenost ekosistema

Za začetek naše poti do izbire našega naslednjega procesorja smo si ogledali široko paleto procesorjev različnih proizvajalcev, ki so bili primerni za naš programski sklad in storitve (napisane v C, LuaJIT in Go). Nabor orodij za merjenje hitrosti smo že podrobno opisali v enem od člankov našega bloga. V tem primeru smo uporabili enak nabor - omogoča nam oceno učinkovitosti CPE v razumnem času, po katerem lahko naši inženirji začnejo prilagajati naše programe določenemu procesorju.

Preizkusili smo različne procesorje z različnimi števili jeder, vtičnicami in frekvencami. Ker ta članek govori o tem, zakaj smo se odločili za AMD EPYC 7642, se vsi grafikoni v tem blogu osredotočajo na delovanje procesorjev AMD v primerjavi z Intel Xeon Platinum 6162 iz naša 9. generacija.

Rezultati ustrezajo meritvam enega strežnika z vsako različico procesorja - torej z dvema 24-jedrnima procesorjema Intel ali z enim 48-jedrnim procesorjem AMD (strežnik za Intel z dvema podnožjema in strežnik za AMD EPYC z enim) . V BIOS-u nastavimo parametre, ki ustrezajo delujočim strežnikom. To je 3,03 GHz za AMD in 2,5 GHz za Intel. Če močno poenostavimo, pričakujemo, da bo z enakim številom jeder AMD deloval 21 % bolje kot Intel.

Kriptografija

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Zdi se obetavno za AMD. Deluje 18 % bolje pri kriptografiji z javnim ključem. S simetričnim ključem izgublja možnosti šifriranja AES-128-GCM, vendar na splošno deluje primerljivo.

Stiskanje

Na robnih strežnikih stisnemo veliko podatkov, da prihranimo pri pasovni širini in povečamo hitrost dostave vsebine. Podatke posredujemo preko C knjižnic zlib in brotli. Vsi testi so bili izvedeni na datoteki HTML blog.cloudflare.com v pomnilniku.

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

AMD je pri uporabi gzipa v povprečju zmagal za 29 %. Pri brotliju so rezultati še boljši na testih s kvaliteto 7, ki jo uporabljamo za dinamično stiskanje. Pri testu brotli-9 pride do močnega padca - to pojasnjujemo z dejstvom, da Brotli porabi veliko pomnilnika in prepolni predpomnilnik. Vendar AMD zmaga z veliko razliko.

Veliko naših storitev je napisanih v Go. V naslednjih grafih dvakrat preverimo hitrost kriptografije in stiskanja v Go z RegExp na 32 KB vrsticah z uporabo knjižnice nizov.

Pojdite na kriptografijo

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Go Compression

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Pojdite na Regexp

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Go Strings

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

AMD deluje bolje v vseh testih z Go, razen ECDSA P256 Sign, kjer je zaostajal za 38% - kar je čudno, glede na to, da je bil v C 24% boljši. Vredno je ugotoviti, kaj se tam dogaja. Na splošno AMD ne zmaga veliko, a vseeno kaže najboljše rezultate.

LuaJIT

LuaJIT pogosto uporabljamo na skladu. To je lepilo, ki drži skupaj vse dele Cloudflare. In veseli smo, da je AMD zmagal tudi tukaj.

Na splošno testi kažejo, da je EPYC 7642 boljši od dveh Xeon Platinum 6162. AMD izgubi na nekaj testih - na primer AES-128-GCM in Go OpenSSL ECDSA-P256 Sign - vendar zmaga na vseh drugih, v povprečju od 25 %.

Simulacija delovne obremenitve

Po naših hitrih preizkusih smo strežnike pregnali skozi drug niz simulacij, v katerih je sintetična obremenitev uporabljena za robni sklad programske opreme. Tukaj simuliramo delovno obremenitev scenarija z različnimi vrstami zahtev, ki jih lahko srečamo pri resničnem delu. Zahteve se razlikujejo glede na količino podatkov, protokole HTTP ali HTTPS, vire WAF, delavce in druge številne spremenljivke. Spodaj je primerjava prepustnosti obeh procesorjev za vrste zahtev, s katerimi se najpogosteje srečujemo.

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Rezultati v grafikonu so merjeni glede na osnovno linijo strojev 9. generacije, ki temeljijo na Intelu, normalizirani na vrednost 1,0 na osi x. Na primer, če vzamemo preproste zahteve 10 KiB prek HTTPS, lahko vidimo, da je AMD 1,5-krat boljši od Intela v smislu zahtev na sekundo. V povprečju je bil AMD pri teh testih 34 % boljši od Intela. Glede na to, da je TDP za en sam AMD EPYC 7642 225 W, za dva procesorja Intel pa 300 W, se izkaže, da glede na "zahteve na vat" AMD kaže 2-krat boljše rezultate kot Intel!

Na tej točki smo se že očitno nagibali k možnosti enojne vtičnice za AMD EPYC 7642 kot naše prihodnje procesorje Gen X. Zelo nas je zanimalo, kako se bodo strežniki AMD EPYC obnesli v resničnem delu, in takoj smo poslali več strežnikov nekaterim iz podatkovnih centrov.

Pravo delo

Prvi korak je bil seveda priprava strežnikov za delo v realnih pogojih. Vsi stroji v našem voznem parku delujejo z enakimi procesi in storitvami, kar zagotavlja odlično priložnost za pravilno primerjavo zmogljivosti. Kot večina podatkovnih centrov imamo razporejenih več generacij strežnikov in svoje strežnike združujemo v gruče, tako da vsak razred vsebuje strežnike približno istih generacij. V nekaterih primerih lahko to povzroči krivulje recikliranja, ki se razlikujejo med grozdi. Ampak ne pri nas. Naši inženirji so optimizirali izkoriščenost procesorja za vse generacije, tako da je ne glede na to, ali ima procesor določenega stroja 8 ali 24 jeder, izkoriščenost procesorja na splošno enaka kot ostali.

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Graf ponazarja naš komentar o podobnosti uporabe - ni bistvene razlike med uporabo procesorjev AMD v strežnikih generacije X in uporabo procesorjev Intel v strežnikih generacije 9. To pomeni, da sta testni in osnovni strežnik enako obremenjena . Super. To je točno tisto, k čemur težimo v naših strežnikih in to potrebujemo za pošteno primerjavo. Spodnja grafa prikazujeta število zahtev, ki jih obdela eno jedro CPE in vsa jedra na ravni strežnika.

Cloudflare izbere procesorje AMD za robne strežnike desete generacije
Zahteve na jedro

Cloudflare izbere procesorje AMD za robne strežnike desete generacije
Zahteve do strežnika

Vidimo lahko, da AMD v povprečju obdela 23 % več zahtev. Sploh ni slabo! Na našem blogu smo pogosto pisali o načinih za povečanje zmogljivosti Gen 9. In zdaj imamo enako število jeder, vendar AMD opravi več dela z manj energije. Iz specifikacij za število jeder in TDP je takoj jasno, da AMD zagotavlja večjo hitrost z večjo energetsko učinkovitostjo.

A kot smo že omenili, TDP ni standardna specifikacija in ni enaka za vse proizvajalce, zato poglejmo dejansko porabo energije. Z merjenjem porabe energije strežnika vzporedno s številom zahtev na sekundo smo dobili naslednji graf:

Cloudflare izbere procesorje AMD za robne strežnike desete generacije

Na podlagi zahtev na sekundo na porabljen vat so strežniki generacije X, ki delujejo na procesorjih AMD, 28 % bolj učinkoviti. Lahko bi pričakovali več, glede na to, da je AMD-jev TDP 25% nižji, vendar ne smemo pozabiti, da je TDP dvoumna lastnost. Videli smo, da je AMD-jeva dejanska poraba energije skoraj enaka navedenemu TDP pri frekvencah, veliko višjih od osnovne; Intel tega nima. To je še en razlog, zakaj TDP ni zanesljiva ocena porabe energije. Intelovi procesorji v naših strežnikih Gen 9 so integrirani v sistem z več vozlišči, medtem ko procesorji AMD delujejo v standardnih strežnikih oblike 1U. To ni v prid AMD-ju, saj naj bi strežniki z več vozlišči zagotavljali večjo gostoto z manjšo porabo energije na vozlišče, vendar je AMD vseeno prehitel Intel glede porabe energije na vozlišče.

V večini primerjav med specifikacijami, testnimi simulacijami in zmogljivostjo v resničnem svetu se je konfiguracija 1P AMD EPYC 7642 izkazala bistveno bolje kot 2P Intel Xeon 6162. V nekaterih pogojih lahko AMD deluje do 36 % bolje in verjamemo, da z optimizacijo strojne in programske opreme, lahko to izboljšavo dosežemo sproti.

Izkazalo se je, da je AMD zmagal.

Dodatni grafi prikazujejo povprečno zakasnitev in zakasnitev p99 pri izvajanju NGINX v 24-urnem obdobju. V povprečju so procesi na AMD tekli 25 % hitreje. Na p99 deluje 20-50% hitreje, odvisno od časa dneva.

Zaključek

Inženirji strojne opreme in zmogljivosti podjetja Cloudflare opravijo veliko testiranj in raziskav, da bi določili najboljšo konfiguracijo strežnika za naše stranke. Radi delamo tukaj, ker lahko rešimo velike probleme, kot so ti, in vam lahko pomagamo rešiti vaše težave s storitvami, kot je robno računalništvo brez strežnikov, in vrsto varnostnih rešitev, kot so Magic Transit, Argo Tunnel in zaščita DDoS. Vsi strežniki v omrežju Cloudflare so konfigurirani za zanesljivo delovanje in vedno se trudimo, da bi bila vsaka naslednja generacija strežnikov boljša od prejšnje. Verjamemo, da je AMD EPYC 7642 odgovor, ko gre za procesorje generacije X.

Z uporabo Cloudflare Workers razvijalci uvajajo svoje aplikacije v naše rastoče omrežje po vsem svetu. Ponosni smo, da svojim strankam dovolimo, da se osredotočijo na pisanje kode, medtem ko se mi osredotočamo na varnost in zanesljivost v oblaku. In danes s še večjim veseljem sporočamo, da bo njihovo delo uvedeno na naših strežnikih generacije X, ki poganjajo procesorje AMD EPYC druge generacije.

Cloudflare izbere procesorje AMD za robne strežnike desete generacije
Procesorji EPYC 7642, kodno ime "Rome" [Rim]

Z uporabo AMD-jevega EPYC 7642 smo lahko povečali svojo zmogljivost in olajšali širitev našega omrežja v nova mesta. Rim ni bil zgrajen v enem dnevu, a bo kmalu bližji mnogim od vas.

V zadnjih nekaj letih smo eksperimentirali s številnimi čipi x86 proizvajalcev Intel in AMD ter procesorji ARM. Pričakujemo, da bodo ti izdelovalci procesorjev tudi v prihodnje sodelovali z nami, da bomo lahko vsi skupaj zgradili boljši internet.

Vir: www.habr.com

Dodaj komentar