Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

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 (Termiskā dizaina jauda, TDP) ir minēti, lai uzsvērtu, ka laika gaitā ir palielinājusies arÄ« mÅ«su energoefektivitāte. Å is rādÄ«tājs mums ir svarÄ«gs: pirmkārt, mēs vēlamies atmosfērā emitēt mazāk oglekļa; otrkārt, mēs vēlamies pēc iespējas labāk izmantot datu centru enerÄ£iju. Bet mēs zinām, ka mums ir uz ko tiekties.

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.

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

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 kādā no mÅ«su emuāra rakstiem. Å ajā gadÄ«jumā mēs izmantojām to paÅ”u komplektu ā€“ tas ļauj saprātÄ«gā laikā novērtēt CPU efektivitāti, pēc kura mÅ«su inženieri var sākt pielāgot mÅ«su programmas konkrētam procesoram.

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. mÅ«su 9. paaudze.

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

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

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.

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

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

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

Iet uz kompresiju

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

Dodieties uz Regexp

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

Go Strings

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

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.

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

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.

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

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Ä«.

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem
Pieprasījumi vienam kodolam

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem
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:

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem

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.

Cloudflare izvēlas AMD procesorus desmitās paaudzes malas serveriem
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

Pievieno komentāru