Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Više od milijardu jedinstvenih IP adresa prolazi kroz Cloudflare mrežu svaki dan; opslužuje više od 11 milijuna HTTP zahtjeva u sekundi; ona je unutar 100 ms od 95% internet populacije. Naša mreža obuhvaća 200 gradova u više od 90 zemalja, a naš tim inženjera izgradio je iznimno brzu i pouzdanu infrastrukturu.

Iznimno smo ponosni na svoj rad i predani smo pomoći da Internet postane bolje i sigurnije mjesto. Cloudflareovi hardverski inženjeri imaju duboko razumijevanje poslužitelja i njihovih komponenti kako bi razumjeli i odabrali najbolji hardver za maksimiziranje njegovih performansi.

Naš softverski skup obrađuje visokoopterećeno računalstvo i jako je ovisan o CPU-u, što od naših inženjera zahtijeva kontinuiranu optimizaciju učinkovitosti i pouzdanosti Cloudflarea na svakoj razini skupa. Na strani poslužitelja, najlakši način za povećanje procesorske snage je dodavanjem CPU jezgri. Što više jezgri poslužitelj može stati, to više podataka može obraditi. To nam je važno jer raznolikost naših proizvoda i klijenata s vremenom raste, a rast zahtjeva zahtijeva povećane performanse poslužitelja. Kako bismo povećali njihovu izvedbu, morali smo povećati gustoću jezgri - i to je upravo ono što smo postigli. U nastavku donosimo detaljne podatke o procesorima za poslužitelje koje postavljamo od 2015. godine, uključujući broj jezgri:

-
Gen 6
Gen 7
Gen 8
Gen 9

Početak
2015
2016
2017
2018

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

Fizičke jezgre
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 po jezgri
10.65W
8.50W
7.08W
6.25W

U 2018. napravili smo veliki skok u ukupnom broju jezgri po poslužitelju s Gen 9. Utjecaj na okoliš smanjen je za 33% u usporedbi s 8. generacijom, što nam daje mogućnost povećanja volumena i računalne snage po stalku. Projektni zahtjevi za rasipanje topline (Snaga toplinskog dizajna, TDP) spominju se kako bi se naglasilo da se i naša energetska učinkovitost s vremenom povećala. Ovaj pokazatelj je važan za nas: prvo, želimo emitirati manje ugljika u atmosferu; drugo, želimo na najbolji način iskoristiti energiju iz podatkovnih centara. Ali znamo da imamo čemu težiti.

Naša glavna definirajuća metrika je broj zahtjeva po vatu. Možemo povećati broj zahtjeva u sekundi dodavanjem jezgri, ali moramo ostati unutar proračuna za napajanje. Ograničeni smo infrastrukturom napajanja podatkovnog centra, koja nam, zajedno s odabranim modulima za distribuciju energije, daje određenu gornju granicu za svaki serverski stalak. Dodavanje poslužitelja u stalak povećava potrošnju energije. Operativni troškovi značajno će se povećati ako premašimo ograničenje energije po stalku i moramo dodati nove stalke. Moramo povećati procesorsku snagu dok ostajemo unutar istog raspona potrošnje energije, što će povećati zahtjeve po vatu, našu ključnu metriku.

Kao što ste mogli pretpostaviti, pažljivo smo proučili potrošnju energije u fazi projektiranja. Gornja tablica pokazuje da ne bismo trebali gubiti vrijeme na implementaciju energetski gladnijih CPU-a ako je TDP po jezgri veći od trenutne generacije - to će negativno utjecati na našu metriku, zahtjeve po vatu. Pažljivo smo proučili sustave spremne za rad za našu generaciju X na tržištu i donijeli odluku. Prelazimo s našeg 48-jezgrenog Intel Xeon Platinum 6162 dual-socket dizajna na 48-core AMD EPYC 7642 dizajn s jednom utičnicom.

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

mikroarhitektura
"Skylake"
"Zen 2"

Kodno ime
“Skylake SP”
"Rim"

Tehnički postupak
14nm
7nm

Jezgre
X 2 24
48

frekvencija
1.9 GHz
2.4 GHz

L3 predmemorija/utičnica
24 x 1.375 MiB
16 x 16 MiB

Memorija/utičnica
6 kanala, do DDR4-2400
8 kanala, do DDR4-3200

TDP
2 x 150W
225W

PCIe/utičnica
48 traka
128 traka

ISA
x86-64
x86-64

Iz specifikacija je jasno da će AMD-ov čip omogućiti da zadržimo isti broj jezgri uz smanjenje TDP-a. Deveta generacija je imala TDP po jezgri od 9 W, a X generacija će iznositi 6,25 W. Sniženo 4,69%. Zahvaljujući povećanoj frekvenciji, a možda i jednostavnijem dizajnu s jednim socketom, može se pretpostaviti da će se AMD čip bolje pokazati u praksi. Trenutno provodimo razne testove i simulacije da vidimo koliko će AMD raditi bolje.

Za sada napomenimo da je TDP pojednostavljena metrika iz specifikacija proizvođača, koju smo koristili u ranim fazama dizajna poslužitelja i odabira CPU-a. Brzo Google pretraživanje otkriva da AMD i Intel imaju različite pristupe definiranju TDP-a, što specifikaciju čini nepouzdanom. Stvarna potrošnja energije CPU-a, i još važnije potrošnja energije poslužitelja, ono je što stvarno koristimo kada donosimo konačnu odluku.

Spremnost ekosustava

Da bismo započeli naš put do odabira sljedećeg procesora, pogledali smo širok raspon CPU-a različitih proizvođača koji su dobro pristajali našem softverskom nizu i uslugama (napisanim u C-u, LuaJIT-u i Go). Već smo detaljno opisali set alata za mjerenje brzine u jednom od članaka na našem blogu. U ovom smo slučaju koristili isti skup - on nam omogućuje procjenu učinkovitosti CPU-a u razumnom vremenu, nakon čega naši inženjeri mogu početi prilagođavati naše programe određenom procesoru.

Testirali smo različite procesore s različitim brojem jezgri, brojem utičnica i frekvencijama. Budući da ovaj članak govori o tome zašto smo se odlučili za AMD EPYC 7642, svi grafikoni u ovom blogu fokusiraju se na rad AMD procesora u usporedbi s Intel Xeon Platinum 6162 iz naša 9. generacija.

Rezultati odgovaraju mjerenjima jednog poslužitelja sa svakom varijantom procesora - to jest, s dva Intelova procesora s 24 jezgre ili s jednim AMD-ovim procesorom s 48 jezgri (poslužitelj za Intel s dva socketa i poslužitelj za AMD EPYC s jednim) . U BIOS-u postavljamo parametre koji odgovaraju pokrenutim poslužiteljima. Ovo je 3,03 GHz za AMD i 2,5 GHz za Intel. Uvelike pojednostavljeno, očekujemo da će s istim brojem jezgri AMD raditi 21% bolje od Intela.

Kriptografija

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Izgleda obećavajuće za AMD. Ima 18% bolju izvedbu na kriptografiji s javnim ključem. Sa simetričnim ključem gubi u odnosu na opcije šifriranja AES-128-GCM, ali općenito ima usporedive performanse.

Kompresija

Na rubnim poslužiteljima komprimiramo puno podataka kako bismo uštedjeli na propusnosti i povećali brzinu isporuke sadržaja. Podatke prosljeđujemo kroz C biblioteke zlib i brotli. Svi testovi su pokrenuti na blog.cloudflare.com HTML datoteci u memoriji.

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

AMD je dobio u prosjeku 29% kada je koristio gzip. Kod brotlija rezultati su još bolji, na testovima s kvalitetom 7, koju koristimo za dinamičku kompresiju. Na testu brotli-9 dolazi do oštrog pada - to objašnjavamo činjenicom da Brotli troši puno memorije i prelijeva predmemoriju. Međutim, AMD pobjeđuje velikom razlikom.

Mnoge naše usluge napisane su u Go-u. U sljedećim grafikonima dvaput provjeravamo brzinu kriptografije i kompresije u Go s RegExp na redovima od 32 KB pomoću biblioteke nizova.

Idi na kriptografiju

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Idi na kompresiju

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Idi Regexp

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Go Strings

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

AMD radi bolje u svim testovima s Goom osim ECDSA P256 Sign, gdje je bio 38% u zaostatku – što je čudno, s obzirom da je u C-u bio 24% bolji. Vrijedno je shvatiti što se tamo događa. Sve u svemu, AMD ne pobjeđuje mnogo, ali ipak pokazuje najbolje rezultate.

LuaJIT

Često koristimo LuaJIT na stogu. Ovo je ljepilo koje drži sve dijelove Cloudflarea zajedno. I drago nam je da je AMD i ovdje pobijedio.

Sveukupno, testovi pokazuju da EPYC 7642 radi bolje od dva Xeon Platinum 6162. AMD gubi na nekoliko testova - na primjer, AES-128-GCM i Go OpenSSL ECDSA-P256 Sign - ali pobjeđuje na svim ostalima, s prosjekom od 25 %.

Simulacija radnog opterećenja

Nakon naših brzih testova, proveli smo poslužitelje kroz još jedan skup simulacija u kojima se sintetičko opterećenje primjenjuje na rubni stog softvera. Ovdje simuliramo radno opterećenje scenarija s različitim vrstama zahtjeva koji se mogu susresti u stvarnom radu. Zahtjevi se razlikuju po količini podataka, HTTP ili HTTPS protokolima, WAF izvorima, radnicima i mnogim drugim varijablama. Dolje je usporedba propusnosti dvaju CPU-a za vrste zahtjeva s kojima se najčešće susrećemo.

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Rezultati u dijagramu mjereni su u odnosu na osnovnu liniju strojeva temeljenih na Intelu 9. generacije, normaliziranih na vrijednost 1,0 na x-osi. Na primjer, uzimajući jednostavne zahtjeve od 10 KiB preko HTTPS-a, možemo vidjeti da je AMD 1,5 puta bolji od Intela u pogledu zahtjeva po sekundi. U prosjeku, AMD je imao 34% bolje rezultate od Intela za ove testove. Uzevši u obzir da je TDP za jedan AMD EPYC 7642 225 W, a za dva Intel procesora 300 W, ispada da u smislu “zahtjeva po vatu” AMD pokazuje 2 puta bolje rezultate od Intela!

U ovom smo trenutku već bili jasno naklonjeni opciji s jednom utičnicom za AMD EPYC 7642 kao našim budućim procesorima Gen X. Jako smo bili zainteresirani vidjeti kako će se AMD EPYC poslužitelji ponašati u stvarnom radu i odmah smo poslali nekoliko poslužitelja nekima iz podatkovnih centara.

Pravi posao

Prvi korak je, naravno, bio pripremiti servere za rad u stvarnim uvjetima. Svi strojevi u našoj floti rade s istim procesima i uslugama, što pruža izvrsnu priliku za ispravnu usporedbu performansi. Kao i većina podatkovnih centara, imamo postavljeno nekoliko generacija poslužitelja, a svoje poslužitelje okupljamo u klastere tako da svaka klasa sadrži poslužitelje približno istih generacija. U nekim slučajevima to može rezultirati krivuljama recikliranja koje se razlikuju među klasterima. Ali ne kod nas. Naši su inženjeri optimizirali iskorištenje CPU-a za sve generacije tako da bez obzira na to ima li CPU određenog stroja 8 ili 24 jezgre, iskorištenje CPU-a općenito je isto kao i ostali.

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Grafikon ilustrira naš komentar o sličnosti korištenja - nema značajne razlike između upotrebe AMD CPU-a u poslužiteljima generacije X i upotrebe Intel procesora u poslužiteljima generacije 9. To znači da su i testni i osnovni poslužitelji jednako opterećeni . Sjajno. To je upravo ono čemu težimo u našim poslužiteljima i to nam je potrebno za poštenu usporedbu. Dva grafikona u nastavku prikazuju broj zahtjeva koje je obradila jedna CPU jezgra i sve jezgre na razini poslužitelja.

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije
Zahtjevi po jezgri

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije
Zahtjevi prema poslužitelju

Vidljivo je da AMD u prosjeku obrađuje 23% više zahtjeva. Uopće nije loše! Često smo pisali na našem blogu o načinima povećanja performansi Gen 9. I sada imamo isti broj jezgri, ali AMD radi više posla s manje energije. Iz specifikacija za broj jezgri i TDP odmah je jasno da AMD daje veću brzinu uz veću energetsku učinkovitost.

Ali kao što smo već spomenuli, TDP nije standardna specifikacija i nije ista za sve proizvođače, pa pogledajmo stvarnu potrošnju energije. Mjerenjem potrošnje energije poslužitelja paralelno s brojem zahtjeva u sekundi dobili smo sljedeći grafikon:

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije

Na temelju zahtjeva u sekundi po potrošenom vatu, Gen X poslužitelji koji rade na AMD procesorima su 28% učinkovitiji. Moglo bi se očekivati ​​i više, s obzirom da je AMD-ov TDP 25% niži, ali treba imati na umu da je TDP dvosmislena karakteristika. Vidjeli smo da je AMD-ova stvarna potrošnja energije gotovo identična navedenom TDP-u na frekvencijama mnogo višim od osnovne; Intel to nema. To je još jedan razlog zašto TDP nije pouzdana procjena potrošnje energije. Intelovi CPU-i u našim poslužiteljima Gen 9 integrirani su u sustav s više čvorova, dok AMD-ovi CPU-i rade u standardnim poslužiteljima formata 1U. To ne ide u prilog AMD-u, budući da bi multinode serveri trebali osigurati veću gustoću uz manju potrošnju energije po čvoru, ali AMD je ipak prestigao Intel po pitanju potrošnje energije po čvoru.

U većini usporedbi specifikacija, testnih simulacija i performansi u stvarnom svijetu, konfiguracija 1P AMD EPYC 7642 pokazala se znatno boljom od 2P Intel Xeon 6162. U nekim uvjetima, AMD može imati do 36% bolju izvedbu, a vjerujemo da optimizacijom hardvera i softvera, ovo poboljšanje možemo postići kontinuirano.

Ispostavilo se da je AMD pobijedio.

Dodatni grafikoni pokazuju prosječnu latenciju i p99 latenciju pri pokretanju NGINX-a tijekom razdoblja od 24 sata. U prosjeku su procesi na AMD-u tekli 25% brže. Na p99 radi 20-50% brže ovisno o dobu dana.

Zaključak

Cloudflareovi inženjeri za hardver i performanse provode značajnu količinu testiranja i istraživanja kako bi odredili najbolju konfiguraciju poslužitelja za naše klijente. Volimo raditi ovdje jer možemo riješiti velike probleme poput ovih, a možemo vam pomoći da riješite svoje probleme s uslugama kao što je rubno računalstvo bez poslužitelja i nizom sigurnosnih rješenja kao što su Magic Transit, Argo Tunnel i DDoS zaštita. . Svi poslužitelji u mreži Cloudflare konfigurirani su za pouzdan rad i uvijek se trudimo da svaka sljedeća generacija poslužitelja bude bolja od prethodne. Vjerujemo da je AMD EPYC 7642 odgovor kada su u pitanju Gen X procesori.

Koristeći Cloudflare Workers, programeri postavljaju svoje aplikacije na našu rastuću mrežu diljem svijeta. Ponosni smo što dopuštamo našim klijentima da se usredotoče na pisanje koda dok se mi fokusiramo na sigurnost i pouzdanost u oblaku. A danas nam je još više drago objaviti da će njihov rad biti implementiran na naše poslužitelje generacije X koji pokreću drugu generaciju AMD EPYC procesora.

Cloudflare odabire AMD-ove procesore za rubne poslužitelje desete generacije
EPYC 7642 procesori, kodni naziv "Rome" [Rim]

Korištenjem AMD-ovog EPYC 7642 uspjeli smo povećati naše performanse i olakšati širenje naše mreže na nove gradove. Rim nije sagrađen za jedan dan, ali uskoro će mnogima od vas biti bliži.

U posljednjih nekoliko godina eksperimentirali smo s mnogim x86 čipovima iz Intela i AMD-a, kao i procesorima iz ARM-a. Očekujemo da će ovi proizvođači CPU-a nastaviti surađivati ​​s nama u budućnosti kako bismo svi zajedno mogli izgraditi bolji Internet.

Izvor: www.habr.com

Dodajte komentar