Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Daugiau nei milijardas unikalių IP adresų kasdien patenka per „Cloudflare“ tinklą; ji aptarnauja daugiau nei 11 milijonų HTTP užklausų per sekundę; ji yra 100 ms atstumu nuo 95% interneto gyventojų. Mūsų tinklas apima 200 miestų daugiau nei 90 šalių, o mūsų inžinierių komanda sukūrė itin greitą ir patikimą infrastruktūrą.

Labai didžiuojamės savo darbu ir esame įsipareigoję padėti padaryti internetą geresne ir saugesne vieta. „Cloudflare“ techninės įrangos inžinieriai puikiai išmano serverius ir jų komponentus, kad suprastų ir pasirinktų geriausią aparatinę įrangą, kad maksimaliai padidintų jos našumą.

Mūsų programinės įrangos paketas tvarko didelės apkrovos skaičiavimą ir labai priklauso nuo procesoriaus, todėl mūsų inžinieriai turi nuolat optimizuoti „Cloudflare“ efektyvumą ir patikimumą kiekviename dėklo lygyje. Serverio pusėje lengviausias būdas padidinti apdorojimo galią yra pridėti procesoriaus branduolius. Kuo daugiau branduolių talpina serveris, tuo daugiau duomenų jis gali apdoroti. Tai mums svarbu, nes mūsų produktų ir klientų įvairovė ilgainiui auga, o užklausų augimui reikalingas didesnis serverių našumas. Norėdami padidinti jų našumą, turėjome padidinti šerdies tankį – būtent tai ir pasiekėme. Žemiau pateikiame išsamius duomenis apie nuo 2015 m. įdiegtų serverių procesorius, įskaitant branduolių skaičių:

-
Gen 6
Gen 7
Gen 8
Gen 9

Darbo pradžia
2015
2016
2017
2018

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

Fizinės šerdys
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 vienam branduoliui
10.65W
8.50W
7.08W
6.25W

2018 m. padarėme didelį šuolį bendrame branduolių skaičiuje viename serveryje naudodami Gen 9. Poveikis aplinkai buvo sumažintas 33%, palyginti su 8-ąja karta, todėl galime padidinti kiekvieno stovo apimtį ir skaičiavimo galią. Šilumos išsklaidymo projektavimo reikalavimai (Šiluminės konstrukcijos galia, TDP) yra paminėti siekiant pabrėžti, kad mūsų energijos vartojimo efektyvumas laikui bėgant taip pat padidėjo. Šis rodiklis mums svarbus: pirma, norime į atmosferą išleisti mažiau anglies; antra, norime kuo geriau panaudoti duomenų centrų energiją. Tačiau žinome, kad turime ko siekti.

Mūsų pagrindinė apibrėžianti metrika yra užklausų skaičius vatui. Pridėdami branduolius galime padidinti užklausų skaičių per sekundę, tačiau turime neviršyti savo energijos biudžeto. Mus riboja duomenų centro maitinimo infrastruktūra, kuri kartu su mūsų pasirinktais elektros paskirstymo moduliais suteikia mums tam tikrą viršutinę ribą kiekvienam serverio stovui. Pridėjus serverius prie stovo, padidėja energijos suvartojimas. Eksploatacijos sąnaudos labai padidės, jei viršysime stelažo energijos ribą ir turėsime pridėti naujų stelažų. Turime padidinti apdorojimo galią išlikdami tame pačiame energijos suvartojimo diapazone, o tai padidins užklausas vienam vatui, mūsų pagrindinei metrikai.

Kaip jau galėjote atspėti, mes atidžiai ištyrėme energijos suvartojimą projektavimo etape. Aukščiau pateiktoje lentelėje parodyta, kad neturėtume gaišti laiko diegdami daugiau energijos reikalaujančių procesorių, jei TDP vienam branduoliui yra didesnis nei dabartinės kartos – tai neigiamai paveiks mūsų metriką, užklausas vienam vatui. Atidžiai ištyrėme mūsų X kartos paruoštas sistemas rinkoje ir priėmėme sprendimą. Nuo 48 branduolių Intel Xeon Platinum 6162 dviejų lizdų dizaino pereiname prie 48 branduolių AMD EPYC 7642 vieno lizdo dizaino.

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

-
"Intel"
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Mikroarchitektūra
"Skylake"
„Zen 2“

Kodinis pavadinimas
„Skylake SP“
"Roma"

Techninis procesas
14nm
7nm

šerdys
X 2 24
48

Dažnumas
1.9 GHz
2.4 GHz

L3 Talpykla / lizdas
24 x 1.375 MB
16 x 16 MB

Atmintis / lizdas
6 kanalai, iki DDR4-2400
8 kanalai, iki DDR4-3200

TDP
2 x 150W
225W

PCIe / lizdas
48 juostos
128 juostos

ISA
x86-64
x86-64

Iš specifikacijų aišku, kad AMD lustas leis mums išlaikyti tą patį branduolių skaičių, tuo pačiu sumažinant TDP. 9-osios kartos TDP vienam branduoliui buvo 6,25 W, o X-osios kartos – 4,69 W. Sumažėjo 25 proc. Dėl padidinto dažnio, o galbūt ir paprastesnio dizaino su vienu lizdu, galima daryti prielaidą, kad AMD lustas praktiškai veiks geriau. Šiuo metu vykdome įvairius bandymus ir modeliavimus, kad pamatytume, kiek geriau veiks AMD.

Kol kas atkreipkime dėmesį, kad TDP yra supaprastinta metrika pagal gamintojo specifikacijas, kurią naudojome pradiniame serverio projektavimo ir procesoriaus pasirinkimo etape. Greita „Google“ paieška atskleidžia, kad AMD ir „Intel“ skirtingai apibrėžia TDP, todėl specifikacija yra nepatikima. Realus procesoriaus energijos suvartojimas ir, dar svarbiau, serverio energijos suvartojimas yra tai, ką iš tikrųjų naudojame priimdami galutinį sprendimą.

Ekosistemos pasirengimas

Norėdami pradėti savo kito procesoriaus pasirinkimą, apžvelgėme daugybę skirtingų gamintojų procesorių, kurie puikiai tiko mūsų programinės įrangos paketui ir paslaugoms (parašyta C, LuaJIT ir Go). Mes jau išsamiai aprašėme greičio matavimo įrankių rinkinį viename iš mūsų tinklaraščio straipsnių. Šiuo atveju naudojome tą patį rinkinį – jis leidžia per protingą laiką įvertinti procesoriaus efektyvumą, po kurio mūsų inžinieriai gali pradėti pritaikyti mūsų programas konkrečiam procesoriui.

Išbandėme įvairius procesorius su įvairiais branduolių skaičiais, lizdų skaičiais ir dažniais. Kadangi šis straipsnis yra apie tai, kodėl pasirinkome AMD EPYC 7642, visose šio tinklaraščio diagramose daugiausia dėmesio skiriama AMD procesorių veikimui, palyginti su „Intel Xeon Platinum 6162“ mūsų 9 karta.

Rezultatai atitinka vieno serverio su kiekvienu procesoriaus variantu matavimus – tai yra su dviem 24 branduolių procesoriais iš „Intel“ arba su vienu 48 branduolių AMD procesoriumi (serveris „Intel“ su dviem lizdais ir serveris AMD EPYC su vienu) . BIOS nustatome parametrus, atitinkančius veikiančius serverius. Tai yra 3,03 GHz AMD ir 2,5 GHz Intel. Labai supaprastinant, tikimės, kad su tokiu pačiu branduolių skaičiumi AMD veiks 21% geriau nei „Intel“.

Kriptografija

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Atrodo daug žadantis AMD. Tai 18% geriau veikia viešojo rakto kriptografijoje. Naudojant simetrinį raktą, jis praranda AES-128-GCM šifravimo parinktis, tačiau apskritai veikia panašiai.

Suspaudimas

Kraštiniuose serveriuose suspaudžiame daug duomenų, kad sutaupytume pralaidumą ir padidintume turinio pristatymo greitį. Duomenis perduodame per C bibliotekas zlib ir brotli. Visi testai buvo vykdomi atmintyje esančiame blog.cloudflare.com HTML faile.

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Naudojant gzip, AMD laimėjo vidutiniškai 29%. Brotli atveju rezultatai yra dar geresni atliekant 7 kokybės testus, kuriuos naudojame dinaminiam suspaudimui. Atliekant brotli-9 testą pastebimas staigus kritimas - tai paaiškiname tuo, kad Brotli sunaudoja daug atminties ir perpildo talpyklą. Tačiau AMD laimi dideliu skirtumu.

Daugelis mūsų paslaugų yra parašytos Go. Tolesnėse diagramose mes dar kartą patikriname kriptografijos ir glaudinimo greitį Go with RegExp 32 KB eilutėse, naudodami eilučių biblioteką.

Eikite į kriptografiją

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Eikite į kompresiją

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Eikite į Regexp

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Go Strings

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

AMD geriau atlieka visus bandymus su Go, išskyrus ECDSA P256 Sign, kur atsiliko 38 % – o tai keista, turint omenyje, kad C režime jis veikė 24 % geriau. Verta išsiaiškinti, kas ten vyksta. Apskritai AMD laimi nedaug, bet vis tiek rodo geriausius rezultatus.

LuaJIT

Mes dažnai naudojame LuaJIT ant krūvos. Tai klijai, kurie sujungia visas Cloudflare dalis. Ir mes džiaugiamės, kad AMD laimėjo ir čia.

Apskritai, testai rodo, kad EPYC 7642 veikia geriau nei du Xeon Platinum 6162. AMD pralaimi keliais testais, pavyzdžiui, AES-128-GCM ir Go OpenSSL ECDSA-P256 Sign, bet laimi visus kitus, vidutiniškai. iš 25 %.

Darbo krūvio modeliavimas

Atlikę greitus testus, paleidome serverius per kitą modeliavimo rinkinį, kuriame programinės įrangos krašto dėkui taikoma sintetinė apkrova. Čia modeliuojame scenarijų darbo krūvį su įvairių tipų užklausomis, su kuriomis galima susidurti atliekant realų darbą. Užklausos skiriasi duomenų apimtimi, HTTP arba HTTPS protokolais, WAF šaltiniais, darbuotojais ir kitais daugeliu kintamųjų. Toliau pateikiamas dviejų procesorių pralaidumo palyginimas pagal užklausų, su kuriomis susiduriame dažniausiai, tipus.

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Rezultatai diagramoje matuojami pagal 9-osios kartos „Intel“ pagrindu veikiančių mašinų bazinę liniją, normalizuotą iki 1,0 reikšmės x ašyje. Pavyzdžiui, pateikę paprastas 10 KiB užklausas per HTTPS, matome, kad AMD užklausų per sekundę atžvilgiu atlieka 1,5 karto geriau nei „Intel“. Šiuos testus AMD atliko vidutiniškai 34% geriau nei „Intel“. Atsižvelgiant į tai, kad vieno AMD EPYC 7642 TDP yra 225 W, o dviejų Intel procesorių - 300 W, paaiškėja, kad pagal „užklausas vienam vatui“ AMD rodo 2 kartus geresnius rezultatus nei „Intel“!

Šiuo metu jau buvome aiškiai linkę į AMD EPYC 7642, kaip mūsų būsimų Gen X procesorių, vieno lizdo parinktį. Mums buvo labai įdomu sužinoti, kaip AMD EPYC serveriai veiks realiame darbe, todėl iškart išsiuntėme kelis serverius į kai kurie iš duomenų centrų.

Tikras darbas

Pirmas žingsnis, žinoma, buvo paruošti serverius darbui realiomis sąlygomis. Visos mūsų parko mašinos dirba su tais pačiais procesais ir paslaugomis, o tai suteikia puikią galimybę teisingai palyginti našumą. Kaip ir daugumoje duomenų centrų, mes įdiegėme kelių kartų serverius ir savo serverius renkame į grupes, kad kiekvienoje klasėje būtų maždaug tų pačių kartų serveriai. Kai kuriais atvejais dėl to gali susidaryti skirtingų grupių perdirbimo kreivės. Bet ne pas mus. Mūsų inžinieriai optimizavo visų kartų procesoriaus naudojimą, kad nepaisant to, ar konkretaus įrenginio CPU yra 8 branduoliai, ar 24 branduoliai, procesoriaus panaudojimas paprastai yra toks pat kaip ir kitų.

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Grafikas iliustruoja mūsų komentarą apie panaudojimo panašumą – nėra didelio skirtumo tarp AMD procesorių naudojimo Gen X kartos serveriuose ir Intel procesorių naudojimo Gen 9 kartos serveriuose. Tai reiškia, kad tiek bandomieji, tiek baziniai serveriai apkraunami vienodai. . Puiku. Būtent to ir siekiame savo serveriuose, ir to mums reikia sąžiningam palyginimui. Toliau pateiktose dviejose diagramose parodytas užklausų, kurias apdoroja vienas CPU branduolys ir visi serverio branduoliai, skaičius.

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius
Užklausos vienam branduoliui

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius
Prašymai serveriui

Galima pastebėti, kad AMD vidutiniškai apdoroja 23% daugiau užklausų. Visai neblogai! Savo tinklaraštyje dažnai rašėme apie būdus, kaip padidinti „Gen 9“ našumą. Dabar turime tiek pat branduolių, tačiau AMD atlieka daugiau darbų su mažesne galia. Iš branduolių skaičiaus ir TDP specifikacijų iš karto aišku, kad AMD užtikrina didesnį greitį ir didesnį energijos vartojimo efektyvumą.

Tačiau, kaip jau minėjome, TDP nėra standartinė specifikacija ir ji nėra vienoda visiems gamintojams, todėl pažiūrėkime į tikrąjį energijos suvartojimą. Išmatavę serverio energijos suvartojimą lygiagrečiai su užklausų skaičiumi per sekundę, gavome tokią grafiką:

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius

Remiantis užklausomis per sekundę vienam išleidžiamam vatui, Gen X serveriai, kuriuose veikia AMD procesoriai, yra 28 % efektyvesni. Galima tikėtis daugiau, nes AMD TDP yra 25% mažesnis, tačiau reikia atsiminti, kad TDP yra dviprasmiška charakteristika. Matėme, kad AMD faktinis energijos suvartojimas yra beveik identiškas nurodytam TDP, kai dažniai yra daug aukštesni nei baziniai; Intel to neturi. Tai dar viena priežastis, kodėl TDP nėra patikimas energijos suvartojimo įvertinimas. „Intel“ procesoriai mūsų Gen 9 serveriuose yra integruoti į kelių mazgų sistemą, o AMD procesoriai veikia standartiniuose 1U formos serveriuose. Tai nėra AMD naudai, nes kelių mazgų serveriai turėtų užtikrinti didesnį tankį ir mažiau energijos sunaudoti viename mazge, tačiau AMD vis tiek aplenkė „Intel“ pagal energijos suvartojimą viename mazge.

Daugumoje specifikacijų, bandymų modeliavimo ir realaus našumo palyginimų 1P AMD EPYC 7642 konfigūracija veikė žymiai geriau nei 2P Intel Xeon 6162. Tam tikromis sąlygomis AMD gali veikti iki 36 % geriau, todėl manome, kad optimizuojant techninę ir programinę įrangą, mes galime pasiekti šį patobulinimą nuolat.

Pasirodo, AMD laimėjo.

Papildomos diagramos rodo vidutinį delsą ir p99 delsą, kai NGINX veikia per 24 valandas. Vidutiniškai AMD procesai veikė 25% greičiau. P99 jis veikia 20-50% greičiau, priklausomai nuo paros laiko.

išvada

„Cloudflare“ aparatinės įrangos ir našumo inžinieriai atlieka daug bandymų ir tyrimų, kad nustatytų geriausią serverio konfigūraciją mūsų klientams. Mums patinka čia dirbti, nes galime išspręsti tokias dideles problemas kaip šios, taip pat galime padėti išspręsti jūsų problemas naudodamiesi tokiomis paslaugomis kaip be serverio krašto kompiuterija ir daugybė saugumo sprendimų, tokių kaip Magic Transit, Argo Tunnel ir DDoS apsauga. Visi „Cloudflare“ tinklo serveriai sukonfigūruoti taip, kad veiktų patikimai, ir mes visada stengiamės, kad kiekviena naujos kartos serveriai būtų geresni nei ankstesni. Manome, kad AMD EPYC 7642 yra atsakymas, kai kalbama apie Gen X procesorius.

Naudodami „Cloudflare Workers“ kūrėjai diegia savo programas mūsų besiplečiančiame tinkle visame pasaulyje. Didžiuojamės galėdami savo klientams sutelkti dėmesį į kodo rašymą, o mes sutelkiame dėmesį į saugumą ir patikimumą debesyje. Ir šiandien mes dar labiau džiaugiamės galėdami pranešti, kad jų darbas bus įdiegtas mūsų X kartos serveriuose, kuriuose veikia antrosios kartos AMD EPYC procesoriai.

Dešimtos kartos krašto serveriams „Cloudflare“ renkasi AMD procesorius
EPYC 7642 procesoriai, kodinis pavadinimas „Rome“ [Roma]

Naudodami AMD EPYC 7642, galėjome padidinti savo našumą ir lengviau plėsti tinklą į naujus miestus. Roma nebuvo pastatyta per dieną, bet netrukus daugeliui iš jūsų ji bus arčiau.

Per pastaruosius porą metų eksperimentavome su daugybe x86 lustų iš Intel ir AMD, taip pat su ARM procesoriais. Tikimės, kad šie procesorių gamintojai ir ateityje dirbs su mumis, kad visi kartu galėtume kurti geresnį internetą.

Šaltinis: www.habr.com

Добавить комментарий