VairÄk nekÄ miljards unikÄlu IP adreÅ”u katru dienu iziet cauri Cloudflare tÄ«klam; tas apkalpo vairÄk nekÄ 11 miljonus HTTP pieprasÄ«jumu sekundÄ; viÅa atrodas 100 ms attÄlumÄ no 95% interneta iedzÄ«votÄju. MÅ«su tÄ«kls aptver 200 pilsÄtas vairÄk nekÄ 90 valstÄ«s, un mÅ«su inženieru komanda ir izveidojusi ÄrkÄrtÄ«gi Ätru un uzticamu infrastruktÅ«ru.
MÄs ļoti lepojamies ar savu darbu un esam apÅÄmuÅ”ies palÄ«dzÄt padarÄ«t internetu labÄku un droÅ”Äku. Cloudflare aparatÅ«ras inženieriem ir dziļa izpratne par serveriem un to komponentiem, lai saprastu un atlasÄ«tu labÄko aparatÅ«ru, lai palielinÄtu tÄ veiktspÄju.
MÅ«su programmatÅ«ras steka apstrÄdÄ lielas slodzes skaitļoÅ”anu un ir ļoti atkarÄ«ga no CPU, tÄpÄc mÅ«su inženieriem ir nepÄrtraukti jÄoptimizÄ Cloudflare efektivitÄte un uzticamÄ«ba visos steka lÄ«meÅos. Servera pusÄ vienkÄrÅ”Äkais veids, kÄ palielinÄt apstrÄdes jaudu, ir pievienot CPU kodolus. Jo vairÄk kodolu var ievietot serverÄ«, jo vairÄk datu tas var apstrÄdÄt. Tas mums ir svarÄ«gi, jo mÅ«su produktu un klientu daudzveidÄ«ba laika gaitÄ pieaug, un pieprasÄ«jumu skaita pieaugums prasa lielÄku serveru veiktspÄju. Lai palielinÄtu to veiktspÄju, mums bija jÄpalielina serdeÅu blÄ«vums - un tieÅ”i to mÄs panÄcÄm. TÄlÄk mÄs sniedzam detalizÄtus datus par procesoriem serveriem, kurus esam izvietojuÅ”i kopÅ” 2015. gada, tostarp kodolu skaitu:
SÄkot no
Gen 6
Gen 7
Gen 8
Gen 9
Darba sÄkÅ”ana
2015
2016
2017
2018
CPU
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Intel Xeon Silver 4116
Intel Xeon Platinum 6162
Fiziskie serdeÅi
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 uz kodolu
10.65W
8.50W
7.08W
6.25W
2018. gadÄ mÄs veicÄm lielu lÄcienu kopÄjÄ kodolu skaitÄ uz vienu serveri, izmantojot Gen 9. Ietekme uz vidi ir samazinÄta par 33%, salÄ«dzinot ar 8. paaudzi, dodot mums iespÄju palielinÄt apjomu un skaitļoÅ”anas jaudu uz vienu plauktu. Siltuma izkliedes konstrukcijas prasÄ«bas (
MÅ«su galvenais noteicoÅ”ais rÄdÄ«tÄjs ir pieprasÄ«jumu skaits uz vatu. MÄs varam palielinÄt pieprasÄ«jumu skaitu sekundÄ, pievienojot kodolus, taÄu mums ir jÄpaliek mÅ«su enerÄ£ijas budžeta robežÄs. MÅ«s ierobežo datu centra jaudas infrastruktÅ«ra, kas kopÄ ar mÅ«su izvÄlÄtajiem elektroenerÄ£ijas sadales moduļiem dod mums noteiktu augÅ”Äjo robežu katram servera plauktam. Serveru pievienoÅ”ana statÄ«vam palielina enerÄ£ijas patÄriÅu. EkspluatÄcijas izmaksas ievÄrojami palielinÄsies, ja mÄs pÄrsniegsim viena statÄ«va enerÄ£ijas ierobežojumu un bÅ«s jÄpievieno jauni statÄ«vi. Mums ir jÄpalielina apstrÄdes jauda, āāvienlaikus saglabÄjot to paÅ”u enerÄ£ijas patÄriÅa diapazonu, kas palielinÄs pieprasÄ«jumu skaitu uz vatu, mÅ«su galveno rÄdÄ«tÄju.
KÄ jÅ«s varÄtu uzminÄt, mÄs rÅ«pÄ«gi pÄtÄ«jÄm enerÄ£ijas patÄriÅu projektÄÅ”anas stadijÄ. IepriekÅ” redzamajÄ tabulÄ parÄdÄ«ts, ka mums nevajadzÄtu tÄrÄt laiku, izvietojot vairÄk enerÄ£ijas patÄrÄjoÅ”us CPU, ja TDP vienam kodolam ir augstÄks nekÄ paÅ”reizÄjÄs paaudzes ā tas negatÄ«vi ietekmÄs mÅ«su metriku, pieprasÄ«jumus uz vatu. MÄs rÅ«pÄ«gi izpÄtÄ«jÄm tirgÅ« pieejamÄs mÅ«su X paaudzes sistÄmas un pieÅÄmÄm lÄmumu. MÄs pÄrejam no mÅ«su 48 kodolu Intel Xeon Platinum 6162 divu ligzdu dizaina uz 48 kodolu AMD EPYC 7642 vienas ligzdas dizainu.
SÄkot no
Intel
AMD
CPU
Xeon Platinum 6162
EPYC 7642
Mikroarhitektūra
"Skylake"
"Zen 2"
Koda vÄrds
"Skylake SP"
"Roma"
Tehniskais process
14nm
7nm
serdeÅi
2 x 24
48
frekvence
1.9 GHz
2.4 GHz
L3 KeÅ”atmiÅa/ligzda
24 x 1.375 MiB
16 x 16 MiB
AtmiÅa/ligzda
6 kanÄli, lÄ«dz pat DDR4-2400
8 kanÄli, lÄ«dz pat DDR4-3200
TDP
2 x 150W
225W
PCIe/ligzda
48 joslas
128 joslas
ISA
x86-64
x86-64
No specifikÄcijÄm ir skaidrs, ka AMD mikroshÄma ļaus mums saglabÄt tÄdu paÅ”u kodolu skaitu, vienlaikus samazinot TDP. 9. paaudzes TDP uz vienu kodolu bija 6,25 W, bet X paaudzei tas bÅ«s 4,69 W. SamazinÄts par 25%. Pateicoties palielinÄtajai frekvencei un, iespÄjams, vienkÄrÅ”Äkai konstrukcijai ar vienu ligzdu, var pieÅemt, ka AMD mikroshÄma praksÄ darbosies labÄk. PaÅ”laik mÄs veicam dažÄdus testus un simulÄcijas, lai redzÄtu, cik daudz labÄk AMD darbosies.
PagaidÄm Åemsim vÄrÄ, ka TDP ir vienkÄrÅ”ota metrika no ražotÄja specifikÄcijÄm, ko izmantojÄm servera projektÄÅ”anas un CPU izvÄles sÄkumposmÄ. Ätra Google meklÄÅ”ana atklÄj, ka AMD un Intel ir atŔķirÄ«gas pieejas TDP definÄÅ”anai, padarot specifikÄciju neuzticamu. ReÄls CPU enerÄ£ijas patÄriÅÅ” un, vÄl svarÄ«gÄk, servera enerÄ£ijas patÄriÅÅ” ir tas, ko mÄs patieÅ”Äm izmantojam, pieÅemot galÄ«go lÄmumu.
EkosistÄmas gatavÄ«ba
Lai sÄktu savu ceļu uz nÄkamÄ procesora izvÄli, mÄs apskatÄ«jÄm plaÅ”u dažÄdu ražotÄju CPU klÄstu, kas bija labi piemÄroti mÅ«su programmatÅ«ras stekam un pakalpojumiem (rakstÄ«ti C, LuaJIT un Go valodÄ). MÄs jau esam sÄ«ki aprakstÄ«juÅ”i Ätruma mÄrÄ«Å”anas rÄ«ku komplektu
MÄs pÄrbaudÄ«jÄm dažÄdus procesorus ar dažÄdu kodolu skaitu, ligzdu skaitu un frekvencÄm. TÄ kÄ Å”is raksts ir par to, kÄpÄc mÄs izvÄlÄjÄmies AMD EPYC 7642, visas Ŕī emuÄra diagrammas ir vÄrstas uz AMD procesoru veiktspÄju salÄ«dzinÄjumÄ ar Intel Xeon Platinum 6162 no.
RezultÄti atbilst viena servera mÄrÄ«jumiem ar katru procesora variantu - tas ir, ar diviem 24 kodolu procesoriem no Intel vai ar vienu 48 kodolu procesoru no AMD (serveris Intel ar divÄm ligzdÄm un serveris AMD EPYC ar vienu) . BIOS mÄs iestatÄm parametrus, kas atbilst darbojas serveriem. Tas ir 3,03 GHz AMD un 2,5 GHz Intel. IevÄrojami vienkÄrÅ”ojot, mÄs sagaidÄm, ka ar tÄdu paÅ”u kodolu skaitu AMD darbosies par 21% labÄk nekÄ Intel.
KriptogrÄfija
IzskatÄs daudzsoloÅ”i priekÅ” AMD. PubliskÄs atslÄgas kriptogrÄfijÄ tas darbojas par 18% labÄk. Izmantojot simetrisko atslÄgu, tas zaudÄ AES-128-GCM Å”ifrÄÅ”anas opcijÄs, taÄu kopumÄ darbojas salÄ«dzinÄmi.
saspieŔana
Malas serveros mÄs saspiežam daudz datu, lai ietaupÄ«tu joslas platumu un palielinÄtu satura piegÄdes Ätrumu. MÄs nododam datus caur C bibliotÄkÄm zlib un brotli. Visi testi tika palaisti atmiÅÄ esoÅ”ajÄ HTML failÄ blog.cloudflare.com.
Izmantojot gzip, AMD uzvarÄja vidÄji par 29%. Brotli gadÄ«jumÄ rezultÄti ir vÄl labÄki testos ar 7. kvalitÄti, ko izmantojam dinamiskai saspieÅ”anai. Brotli-9 testÄ ir straujÅ” kritums - mÄs to izskaidrojam ar to, ka Brotli patÄrÄ daudz atmiÅas un pÄrpilda keÅ”atmiÅu. TomÄr AMD uzvar ar lielu pÄrsvaru.
Daudzi no mÅ«su pakalpojumiem ir rakstÄ«ti Go. NÄkamajos grafikos mÄs vÄlreiz pÄrbaudÄm kriptogrÄfijas un saspieÅ”anas Ätrumu programmÄ Go with RegExp 32 KB rindÄs, izmantojot virkÅu bibliotÄku.
Dodieties uz kriptogrÄfiju
Iet uz kompresiju
Dodieties uz Regexp
Go Strings
AMD veic labÄkus rezultÄtus visos testos ar Go, izÅemot ECDSA P256 Sign, kur tas atpalika par 38% ā kas ir dÄ«vaini, Åemot vÄrÄ, ka C versijÄ tas darbojÄs par 24% labÄk. Ir vÄrts izdomÄt, kas tur notiek. KopumÄ AMD neuzvar daudz, bet joprojÄm uzrÄda labÄkos rezultÄtus.
LuaJIT
MÄs bieži izmantojam LuaJIT kaudzÄ. Å Ä« ir lÄ«me, kas satur kopÄ visas Cloudflare daļas. Un mÄs priecÄjamies, ka AMD uzvarÄja arÄ« Å”eit.
KopumÄ testi liecina, ka EPYC 7642 darbojas labÄk nekÄ divi Xeon Platinum 6162. AMD zaudÄ dažos testos, piemÄram, AES-128-GCM un Go OpenSSL ECDSA-P256 Sign, bet uzvar visos pÄrÄjos, vidÄji. no 25%.
Darba slodzes simulÄcija
PÄc mÅ«su ÄtrajÄm pÄrbaudÄm mÄs palaidÄm serverus, izmantojot citu simulÄciju kopu, kurÄ programmatÅ«ras malas stekam tiek piemÄrota sintÄtiska slodze. Å eit mÄs simulÄjam scenÄrija darba slodzi ar dažÄda veida pieprasÄ«jumiem, ar kuriem var saskarties reÄlajÄ darbÄ. PieprasÄ«jumi atŔķiras pÄc datu apjoma, HTTP vai HTTPS protokoliem, WAF avotiem, darbiniekiem un citiem daudziem mainÄ«gajiem lielumiem. TÄlÄk ir sniegts abu CPU caurlaidspÄjas salÄ«dzinÄjums, Åemot vÄrÄ pieprasÄ«jumu veidus, ar kuriem saskaramies visbiežÄk.
RezultÄti diagrammÄ ir mÄrÄ«ti, salÄ«dzinot ar 9. paaudzes Intel bÄzes iekÄrtu bÄzes lÄ«niju, kas normalizÄta lÄ«dz vÄrtÄ«bai 1,0 uz x ass. PiemÄram, veicot vienkÄrÅ”us 10 KiB pieprasÄ«jumus, izmantojot HTTPS, mÄs varam redzÄt, ka AMD veic 1,5 reizes labÄk nekÄ Intel, Åemot vÄrÄ pieprasÄ«jumu skaitu sekundÄ. VidÄji AMD Å”ajos testos veica par 34% labÄk nekÄ Intel. Å
emot vÄrÄ, ka viena AMD EPYC 7642 TDP ir 225 W, bet diviem Intel procesoriem - 300 W, izrÄdÄs, ka āpieprasÄ«jumu uz vatuā izteiksmÄ AMD uzrÄda 2 reizes labÄkus rezultÄtus nekÄ Intel!
Å ajÄ brÄ«dÄ« mÄs jau skaidri nosliecÄmies uz vienas ligzdas opciju AMD EPYC 7642 kÄ mÅ«su nÄkotnes Gen X CPU. Mums bija ļoti interesanti redzÄt, kÄ AMD EPYC serveri darbosies reÄlajÄ darbÄ, un mÄs nekavÄjoties nosÅ«tÄ«jÄm vairÄkus serverus uz daži no datu centriem.
ReÄls darbs
Pirmais solis, protams, bija sagatavot serverus darbam reÄlos apstÄkļos. Visas mÅ«su autoparka maŔīnas strÄdÄ ar vienÄdiem procesiem un pakalpojumiem, kas sniedz lielisku iespÄju pareizi salÄ«dzinÄt veiktspÄju. TÄpat kÄ lielÄkajÄ daÄ¼Ä datu centru, mums ir izvietotas vairÄkas serveru paaudzes, un mÄs apkopojam savus serverus klasteros, lai katrÄ klasÄ bÅ«tu aptuveni vienÄdu paaudžu serveri. Dažos gadÄ«jumos tas var izraisÄ«t pÄrstrÄdes lÄ«knes, kas dažÄdÄs kopÄs atŔķiras. Bet ne pie mums. MÅ«su inženieri ir optimizÄjuÅ”i centrÄlo procesoru izmantoÅ”anu visÄm paaudzÄm, lai neatkarÄ«gi no tÄ, vai konkrÄtas maŔīnas centrÄlajam procesoram ir 8 vai 24 kodoli, CPU noslodze parasti ir tÄda pati kÄ pÄrÄjiem.
Diagramma ilustrÄ mÅ«su komentÄru par izmantoÅ”anas lÄ«dzÄ«bu - nav bÅ«tiskas atŔķirÄ«bas starp AMD CPU izmantoÅ”anu Gen X paaudzes serveros un Intel procesoru izmantoÅ”anu Gen 9 paaudzes serveros. Tas nozÄ«mÄ, ka gan testa, gan bÄzes serveri tiek noslogoti vienÄdi. . Lieliski. TieÅ”i uz to mÄs cenÅ”amies savos serveros, un mums tas ir vajadzÄ«gs godÄ«gam salÄ«dzinÄjumam. Divas zemÄk esoÅ”Äs diagrammas parÄda pieprasÄ«jumu skaitu, ko apstrÄdÄ viens CPU kodols un visi kodoli servera lÄ«menÄ«.
Pieprasījumi vienam kodolam
Pieprasījumi serverim
Redzams, ka vidÄji AMD apstrÄdÄ par 23% vairÄk pieprasÄ«jumu. VispÄr nav slikti! MÄs savÄ emuÄrÄ bieži esam rakstÄ«juÅ”i par veidiem, kÄ palielinÄt Gen 9 veiktspÄju. Tagad mums ir tÄds pats kodolu skaits, taÄu AMD veic vairÄk darba ar mazÄku jaudu. No kodolu skaita un TDP specifikÄcijÄm uzreiz ir skaidrs, ka AMD nodroÅ”ina lielÄku Ätrumu un lielÄku energoefektivitÄti.
Bet, kÄ jau minÄjÄm, TDP nav standarta specifikÄcija un tÄ nav vienÄda visiem ražotÄjiem, tÄpÄc paskatÄ«simies uz faktisko enerÄ£ijas patÄriÅu. MÄrot servera enerÄ£ijas patÄriÅu paralÄli pieprasÄ«jumu skaitam sekundÄ, mÄs ieguvÄm Å”Ädu grafiku:
Pamatojoties uz pieprasÄ«jumiem sekundÄ uz vienu iztÄrÄto vatu, Gen X serveri, kas darbojas ar AMD procesoriem, ir par 28% efektÄ«vÄki. VarÄtu sagaidÄ«t vairÄk, Åemot vÄrÄ, ka AMD TDP ir par 25% zemÄks, taÄu jÄatceras, ka TDP ir neskaidrs raksturlielums. MÄs esam redzÄjuÅ”i, ka AMD faktiskais enerÄ£ijas patÄriÅÅ” ir gandrÄ«z identisks norÄdÄ«tajam TDP frekvencÄs, kas ir daudz augstÄkas nekÄ bÄzes; Intel tÄda nav. Tas ir vÄl viens iemesls, kÄpÄc TDP nav uzticams enerÄ£ijas patÄriÅa aprÄÄ·ins. Intel CPU mÅ«su Gen 9 serveros ir integrÄti vairÄku mezglu sistÄmÄ, savukÄrt AMD CPU darbojas standarta 1U formas faktora serveros. Tas nav par labu AMD, jo vairÄku mezglu serveriem vajadzÄtu nodroÅ”inÄt lielÄku blÄ«vumu ar mazÄku enerÄ£ijas patÄriÅu uz vienu mezglu, taÄu AMD joprojÄm apsteidza Intel enerÄ£ijas patÄriÅa ziÅÄ uz vienu mezglu.
LielÄkajÄ daÄ¼Ä specifikÄciju, testa simulÄciju un reÄlÄs pasaules veiktspÄjas salÄ«dzinÄjumu 1P AMD EPYC 7642 konfigurÄcija bija ievÄrojami labÄka nekÄ 2P Intel Xeon 6162. Dažos apstÄkļos AMD var veikt lÄ«dz pat 36% labÄk, un mÄs uzskatÄm, ka, optimizÄjot aparatÅ«ru un programmatÅ«ru, mÄs varam panÄkt Å”o uzlabojumu pastÄvÄ«gi.
IzrÄdÄs AMD uzvarÄja.
Papildu diagrammas parÄda vidÄjo latentumu un p99 latentumu, kas darbojas NGINX 24 stundu periodÄ. VidÄji AMD procesi darbojÄs par 25% ÄtrÄk. Uz p99 tas darbojas par 20-50% ÄtrÄk atkarÄ«bÄ no diennakts laika.
SecinÄjums
Cloudflare aparatÅ«ras un veiktspÄjas inženieri veic ievÄrojamu daudzumu testu un pÄtÄ«jumu, lai noteiktu labÄko servera konfigurÄciju mÅ«su klientiem. Mums patÄ«k Å”eit strÄdÄt, jo mÄs varam atrisinÄt tÄdas lielas problÄmas kÄ Å”Ä«s, kÄ arÄ« varam palÄ«dzÄt atrisinÄt jÅ«su problÄmas, izmantojot tÄdus pakalpojumus kÄ bezservera malu skaitļoÅ”ana un virkne droŔības risinÄjumu, piemÄram, Magic Transit, Argo Tunnel un DDoS aizsardzÄ«ba. Visi Cloudflare tÄ«kla serveri ir konfigurÄti tÄ, lai tie darbotos droÅ”i, un mÄs vienmÄr cenÅ”amies katru nÄkamo serveru paaudzi padarÄ«t labÄku par iepriekÅ”Äjo. MÄs uzskatÄm, ka AMD EPYC 7642 ir atbilde, kad runa ir par Gen X procesoriem.
Izmantojot Cloudflare Workers, izstrÄdÄtÄji izvieto savas lietojumprogrammas mÅ«su augoÅ”ajÄ tÄ«klÄ visÄ pasaulÄ. MÄs esam lepni, ka ļaujam saviem klientiem koncentrÄties uz koda rakstÄ«Å”anu, kamÄr mÄs koncentrÄjamies uz droŔību un uzticamÄ«bu mÄkonÄ«. Un Å”odien mÄs ar vÄl lielÄku prieku paziÅojam, ka viÅu darbs tiks izvietots mÅ«su Gen X paaudzes serveros, kuros darbojas otrÄs paaudzes AMD EPYC procesori.
EPYC 7642 procesori, koda nosaukums "Rome" [Roma]
Izmantojot AMD EPYC 7642, mÄs varÄjÄm palielinÄt savu veiktspÄju un atvieglot tÄ«kla paplaÅ”inÄÅ”anu uz jaunÄm pilsÄtÄm. Roma netika uzcelta vienÄ dienÄ, bet drÄ«z tÄ bÅ«s tuvÄk daudziem no jums.
PÄdÄjo pÄris gadu laikÄ esam eksperimentÄjuÅ”i ar daudzÄm x86 mikroshÄmÄm no Intel un AMD, kÄ arÄ« ar ARM procesoriem. MÄs ceram, ka Å”ie CPU ražotÄji turpinÄs sadarboties ar mums arÄ« turpmÄk, lai mÄs visi kopÄ varÄtu izveidot labÄku internetu.
Avots: www.habr.com