Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

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

Veoma smo ponosni na svoj rad i posvećeni smo pomoći da internet postane bolje i sigurnije mjesto. Cloudflare-ovi hardverski inženjeri imaju duboko razumijevanje servera i njihovih komponenti kako bi razumjeli i odabrali najbolji hardver kako bi maksimizirali njegove performanse.

Naš softverski stog upravlja računarstvom sa velikim opterećenjem i u velikoj meri zavisi od CPU-a, što zahteva od naših inženjera da kontinuirano optimizuju Cloudflare efikasnost i pouzdanost na svakom nivou steka. Na strani servera, najlakši način za povećanje procesorske snage je dodavanjem CPU jezgara. Što više jezgri server može stati, više podataka može obraditi. Ovo nam je važno jer raznolikost naših proizvoda i klijenata vremenom raste, a rast zahtjeva zahtijeva povećanje performansi servera. Da bismo povećali njihove performanse, morali smo povećati gustinu jezgara – i to je upravo ono što smo postigli. U nastavku donosimo detaljne podatke o procesorima za servere koje postavljamo od 2015. godine, uključujući i broj jezgara:

-
Gen 6
Gen 7
Gen 8
Gen 9

Prvi koraci
2015
2016
2017
2018

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

Fizička jezgra
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 po jezgru
10.65W
8.50W
7.08W
6.25W

U 2018. smo napravili veliki skok u ukupnom broju jezgara po serveru sa Gen 9. Uticaj na životnu sredinu smanjen je za 33% u poređenju sa 8. generacijom, što nam daje priliku da povećamo zapreminu i računarsku snagu po raku. Projektni zahtjevi za odvođenje topline (Snaga toplotnog dizajna, TDP) se spominju kako bi se naglasilo da se i naša energetska efikasnost vremenom povećala. Ovaj indikator je važan za nas: prvo, želimo da emitujemo manje ugljenika u atmosferu; drugo, želimo da na najbolji način iskoristimo energiju iz data centara. Ali znamo da imamo čemu da težimo.

Naša glavna metrika koja određuje je broj zahtjeva po vatu. Možemo povećati broj zahtjeva u sekundi dodavanjem jezgara, ali moramo ostati u okviru našeg budžeta za napajanje. Ograničeni smo infrastrukturom napajanja data centra, koja nam, zajedno sa našim odabranim modulima za distribuciju energije, daje određenu gornju granicu za svaki serverski rack. Dodavanje servera na stalak povećava potrošnju energije. Operativni troškovi će se značajno povećati ako prekoračimo ograničenje energije po racku i budemo morali dodati nove stalke. Moramo povećati procesorsku snagu, a da ostanemo u istom rasponu potrošnje energije, što će povećati zahtjeve po vatu, što je naša ključna metrika.

Kao što ste mogli pretpostaviti, pažljivo smo proučavali potrošnju energije u fazi projektovanja. Gornja tabela pokazuje da ne bismo trebali gubiti vrijeme na implementaciju više CPU-a koji su gladni energije 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 sisteme spremne za rad za našu generaciju X na tržištu i donijeli odluku. Prelazimo sa našeg 48-jezgrenog Intel Xeon Platinum 6162 dizajna sa dva socketa na 48-jezgarni AMD EPYC 7642 dizajn sa jednim socketom.

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Mikroarhitektura
"Skylake"
"Zen 2"

Kodno ime
Skylake SP
“Rim”

Procesna tehnologija
14nm
7nm

jezgra
2 x 24
48

Frekvencija
1.9 GHz
2.4 GHz

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

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

TDP
2 x 150W
225W

PCIe/socket
48 traka
128 traka

JE
x86-64
x86-64

Iz specifikacija je jasno da će nam AMD-ov čip omogućiti da zadržimo isti broj jezgara uz snižavanje TDP-a. 9. generacija je imala TDP po jezgri od 6,25 W, a X generacija će biti 4,69 W. Smanjena za 25%. Zahvaljujući povećanoj frekvenciji, a možda i jednostavnijem dizajnu sa jednim soketom, može se pretpostaviti da će AMD čip bolje raditi u praksi. Trenutno provodimo razne testove i simulacije da vidimo koliko će bolje AMD raditi.

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

Spremnost ekosistema

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

Testirali smo razne procesore sa različitim brojem jezgara, broja soketa i frekvencija. Pošto je ovaj članak o tome zašto smo se odlučili na AMD EPYC 7642, sve grafikone na ovom blogu fokusiraju se na performanse AMD procesora u poređenju sa Intel Xeon Platinum 6162 iz naša 9. generacija.

Rezultati odgovaraju mjerenjima jednog servera sa svakom varijantom procesora – odnosno sa dva Intelova 24-jezgrena procesora ili sa jednim 48-jezgarnim procesorom iz AMD-a (server za Intel sa dva soketa i server za AMD EPYC sa jednim) . U BIOS-u postavljamo parametre koji odgovaraju pokrenutim serverima. Ovo je 3,03 GHz za AMD i 2,5 GHz za Intel. Ako uvelike pojednostavimo, očekujemo da će sa istim brojem jezgara AMD raditi 21% bolje od Intela.

Kriptografija

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Izgleda obećavajuće za AMD. Radi 18% bolje u kriptografiji javnog ključa. Sa simetričnim ključem gubi za opcije šifriranja AES-128-GCM, ali sveukupno ima uporedive performanse.

Kompresija

Na rubnim serverima kompresujemo mnogo 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 izvedeni na blog.cloudflare.com HTML fajlu u memoriji.

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

AMD je osvojio u prosjeku 29% kada je koristio gzip. U slučaju brotlija, rezultati su još bolji, na testovima kvaliteta 7 koje 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 preplavljuje keš memoriju. Međutim, AMD pobjeđuje sa velikom razlikom.

Mnoge naše usluge su napisane na Go. U sljedećim grafikonima, dvaput provjeravamo brzinu kriptografije i kompresije u Go sa RegExp-om na linijama od 32 KB koristeći biblioteku stringova.

Idi na kriptografiju

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Idi Compression

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Idi Regexp

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Go Strings

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

AMD radi bolje na svim testovima sa Go-om osim ECDSA P256 Sign, gdje je zaostao 38% - što je čudno, s obzirom da je imao 24% bolji učinak u C. Vrijedi shvatiti šta se tamo dešava. Sve u svemu, AMD ne pobjeđuje mnogo, ali ipak pokazuje najbolje rezultate.

LuaJIT

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

Sve u svemu, 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 ostalim, u prosjeku od 25% .

Simulacija radnog opterećenja

Nakon naših brzih testova, proveli smo servere kroz još jedan skup simulacija u kojima se sintetičko opterećenje primjenjuje na softverski rubni stog. Ovdje simuliramo radno opterećenje scenarija s različitim tipovima zahtjeva koji se mogu susresti u stvarnom radu. Zahtjevi se razlikuju po obimu podataka, HTTP ili HTTPS protokolima, WAF izvorima, radnicima i drugim mnogim varijablama. Ispod je poređenje propusnosti dva CPU-a za tipove zahtjeva s kojima se najčešće susrećemo.

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Rezultati u grafikonu su mjereni u odnosu na osnovnu liniju 9. generacije mašina zasnovanih na Intelu, normalizovane na vrijednost od 1,0 na x-osi. Na primjer, uzimajući jednostavne zahtjeve od 10 KiB preko HTTPS-a, možemo vidjeti da AMD radi 1,5 puta bolje od Intela u smislu zahtjeva u sekundi. AMD je u prosjeku pokazao 34% bolji rezultat od Intela za ove testove. Uzimajuć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 trenutku, već smo se jasno naginjali opciji sa jednom utičnicom za AMD EPYC 7642 kao naše buduće procesore Gen X. Bili smo veoma zainteresovani da vidimo kako će AMD EPYC serveri raditi u stvarnom svetu i odmah smo poslali nekoliko servere nekima iz data centara.

Pravi posao

Prvi korak je, naravno, bio priprema servera za rad u realnim uslovima. Sve mašine u našoj floti rade sa istim procesima i uslugama, što pruža odličnu priliku za korektno upoređivanje performansi. Kao i većina data centara, imamo nekoliko generacija raspoređenih servera, a svoje servere skupljamo u klastere tako da svaka klasa sadrži servere približno istih generacija. U nekim slučajevima to može rezultirati krivuljama recikliranja koje se razlikuju između klastera. Ali ne kod nas. Naši inženjeri su optimizirali korištenje CPU-a za sve generacije, tako da bez obzira da li CPU određene mašine ima 8 jezgara ili 24, korištenje CPU-a je općenito isto kao i kod ostalih.

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Grafikon ilustruje naš komentar o sličnosti upotrebe - ne postoji značajna razlika između upotrebe AMD CPU-a u serverima generacije X i upotrebe Intel procesora u serverima generacije 9. To znači da su i testni i osnovni serveri podjednako učitani . Odlično. To je upravo ono čemu težimo u našim serverima, a ovo nam je potrebno za pošteno poređenje. Dva grafikona ispod pokazuju broj zahtjeva koje obrađuje jedno CPU jezgro i sva jezgra na nivou servera.

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije
Zahtjevi po jezgru

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije
Zahtjevi serveru

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

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

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije

Na osnovu zahteva po sekundi po potrošenom vatu, Gen X serveri koji rade na AMD procesorima su 28% efikasniji. Moglo bi se očekivati ​​više, s obzirom da je AMD-ov TDP 25% niži, ali treba imati na umu da je TDP dvosmislena karakteristika. Videli smo da je AMD-ova stvarna potrošnja energije skoro identična navedenom TDP-u na frekvencijama koje su mnogo veće od osnovne; Intel to nema. Ovo je još jedan razlog zašto TDP nije pouzdana procjena potrošnje energije. Intelovi procesori u našim Gen 9 serverima su integrisani u sistem sa više čvorova, dok AMD procesori rade u standardnim serverima 1U form faktor. Ovo ne ide u prilog AMD-u, jer bi multinode serveri trebali da obezbede veću gustinu sa manjom potrošnjom energije po čvoru, ali je AMD ipak pretekao Intel u pogledu potrošnje energije po čvoru.

U većini poređenja po specifikacijama, simulacijama testa i performansama u stvarnom svijetu, 1P AMD EPYC 7642 konfiguracija je imala značajno bolje rezultate od 2P Intel Xeon 6162. U nekim uvjetima, AMD može raditi i do 36% bolje, a vjerujemo da optimiziranjem hardvera i softvera, ovo poboljšanje možemo postići na stalnoj osnovi.

Ispostavilo se da je AMD pobijedio.

Dodatni grafikoni pokazuju prosječnu latencije i p99 latencije pokretanja NGINX-a u periodu od 24 sata. U prosjeku, procesi na AMD-u su radili 25% brže. Na p99 radi 20-50% brže u zavisnosti od doba dana.

zaključak

Cloudflare-ovi inženjeri hardvera i performansi vrše značajnu količinu testiranja i istraživanja kako bi odredili najbolju konfiguraciju servera 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 vaše probleme sa uslugama kao što su rubno računanje bez servera i niz sigurnosnih rješenja kao što su Magic Transit, Argo Tunnel i DDoS zaštita. . Svi serveri u Cloudflare mreži su konfigurisani da rade pouzdano, a mi se uvek trudimo da svaku sledeću generaciju servera učinimo boljom 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 mrežu koja se širi širom svijeta. Ponosni smo što dozvoljavamo našim klijentima da se fokusiraju na pisanje koda, dok se mi fokusiramo na sigurnost i pouzdanost u oblaku. A danas sa još većim zadovoljstvom najavljujemo da će njihov rad biti raspoređen na našim serverima generacije X generacije koji koriste drugu generaciju AMD EPYC procesora.

Cloudflare bira procesore iz AMD-a za rubne servere desete generacije
EPYC 7642 procesori, kodno ime "Rim" [Rim]

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

U posljednjih nekoliko godina eksperimentirali smo sa mnogim x86 čipovima iz Intela i AMD-a, kao i sa ARM procesorima. Očekujemo da ovi proizvođači procesora nastave da rade s nama u budućnosti kako bismo svi zajedno mogli izgraditi bolji internet.

izvor: www.habr.com

Dodajte komentar