Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Sieťou Cloudflare Network prechádza každý deň viac ako miliarda jedinečných IP adries; obsluhuje viac ako 11 miliónov HTTP požiadaviek za sekundu; je v okruhu 100 ms od 95 % internetovej populácie. Naša sieť pokrýva 200 miest vo viac ako 90 krajinách a náš tím inžinierov vybudoval extrémne rýchlu a spoľahlivú infraštruktúru.

Sme veľmi hrdí na našu prácu a sme odhodlaní pomáhať robiť internet lepším a bezpečnejším miestom. Hardvéroví inžinieri Cloudflare majú hlboké znalosti o serveroch a ich komponentoch, aby pochopili a vybrali ten najlepší hardvér na maximalizáciu jeho výkonu.

Náš softvérový balík zvláda výpočtovú techniku ​​s vysokou záťažou a je vysoko závislý od CPU, čo od našich inžinierov vyžaduje, aby neustále optimalizovali efektivitu a spoľahlivosť Cloudflare na každej úrovni zásobníka. Na strane servera je najjednoduchší spôsob zvýšenia výpočtového výkonu pridaním jadier CPU. Čím viac jadier sa server zmestí, tým viac údajov dokáže spracovať. Je to pre nás dôležité, pretože rozmanitosť našich produktov a klientov časom rastie a rast požiadaviek vyžaduje zvýšený výkon serverov. Aby sme zvýšili ich výkon, potrebovali sme zvýšiť hustotu jadier – a presne to sa nám podarilo. Nižšie uvádzame podrobné údaje o procesoroch pre servery, ktoré sme nasadili od roku 2015, vrátane počtu jadier:

-
gen 6
gen 7
gen 8
gen 9

Začíname
2015
2016
2017
2018

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

Fyzické jadrá
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 na jadro
10.65 W
8.50 W
7.08 W
6.25 W

V roku 2018 sme s Gen 9 urobili veľký skok v celkovom počte jadier na server. Vplyv na životné prostredie sa v porovnaní s 33. generáciou znížil o 8 %, čo nám dáva možnosť zvýšiť objem a výpočtový výkon na rack. Konštrukčné požiadavky na odvod tepla (Tepelný dizajn Výkon, TDP) sú spomenuté, aby sa zdôraznilo, že naša energetická účinnosť sa časom tiež zvýšila. Tento ukazovateľ je pre nás dôležitý: po prvé, chceme vypúšťať do atmosféry menej uhlíka; po druhé, chceme čo najlepšie využiť energiu z dátových centier. Vieme však, že sa máme o čo snažiť.

Našou hlavnou definujúcou metrikou je počet požiadaviek na watt. Môžeme zvýšiť počet požiadaviek za sekundu pridaním jadier, ale musíme zostať v rámci nášho energetického rozpočtu. Sme limitovaní napájacou infraštruktúrou dátového centra, ktorá nám spolu s nami vybranými modulmi rozvodu energie dáva určitú hornú hranicu pre každý serverový rack. Pridanie serverov do racku zvyšuje spotrebu energie. Prevádzkové náklady sa výrazne zvýšia, ak prekročíme energetický limit na jeden stojan a budeme musieť pridávať nové stojany. Musíme zvýšiť výpočtový výkon a zároveň zostať v rovnakom rozsahu spotreby energie, čo zvýši požiadavky na watt, čo je naša kľúčová metrika.

Ako ste možno uhádli, v štádiu návrhu sme starostlivo študovali spotrebu energie. Vyššie uvedená tabuľka ukazuje, že by sme nemali strácať čas nasadzovaním energeticky náročnejších CPU, ak je TDP na jadro vyššie ako súčasná generácia – to negatívne ovplyvní našu metriku, požiadavky na watt. Starostlivo sme preštudovali systémy pripravené na spustenie pre našu generáciu X na trhu a rozhodli sme sa. Prechádzame z nášho 48-jadrového dizajnu Intel Xeon Platinum 6162 s dvoma päticami na 48-jadrový dizajn AMD EPYC 7642 s jednou päticou.

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Mikroarchitektúra
"Skylake"
„Zen 2“

Kódové meno
"Skylake SP"
"Rím"

Technický proces
14nm
7nm

jadrá
X 2 24
48

kmitočet
1.9 GHz
2.4 GHz

L3 Cache/zásuvka
24 x 1.375 MiB
16 x 16 MiB

Pamäť/zásuvka
6 kanálov, až do DDR4-2400
8 kanálov, až do DDR4-3200

TDP
2 x 150W
225 W

PCIe/zásuvka
48 pruhov
128 pruhov

ISA
x86-64
x86-64

Zo špecifikácií je zrejmé, že čip od AMD nám umožní zachovať rovnaký počet jadier pri znížení TDP. 9. generácia mala TDP na jadro 6,25 W a X-tá generácia to bude 4,69 W. Znížené o 25 %. Vďaka zvýšenej frekvencii a možno aj jednoduchšej konštrukcii s jednou päticou sa dá predpokladať, že čip AMD si v praxi povedie lepšie. V súčasnosti spúšťame rôzne testy a simulácie, aby sme zistili, o koľko lepšie bude AMD fungovať.

Zatiaľ si všimnime, že TDP je zjednodušená metrika zo špecifikácií výrobcu, ktorú sme použili v počiatočných fázach návrhu servera a výberu CPU. Rýchle vyhľadávanie Google ukazuje, že AMD a Intel majú rôzne prístupy k definovaniu TDP, takže špecifikácia je nespoľahlivá. Skutočná spotreba energie CPU, a čo je dôležitejšie, spotreba energie servera, je to, čo skutočne používame pri našom konečnom rozhodnutí.

Pripravenosť ekosystému

Aby sme začali našu cestu k výberu nášho ďalšieho procesora, pozreli sme sa na širokú škálu CPU od rôznych výrobcov, ktoré sa hodili pre náš softvérový balík a služby (napísané v C, LuaJIT a Go). Súpravu nástrojov na meranie rýchlosti sme už podrobne opísali v jednom z našich blogových článkov. V tomto prípade sme použili rovnakú zostavu – tá nám umožňuje vyhodnotiť efektivitu CPU v rozumnom čase, po ktorom môžu naši inžinieri začať prispôsobovať naše programy konkrétnemu procesoru.

Testovali sme rôzne procesory s rôznym počtom jadier, pätíc a frekvencií. Keďže tento článok je o tom, prečo sme sa rozhodli pre AMD EPYC 7642, všetky grafy v tomto blogu sa zameriavajú na výkonnosť procesorov AMD v porovnaní s Intel Xeon Platinum 6162 od naša 9. generácia.

Výsledky zodpovedajú meraniam jedného servera s každým variantom procesora - teda s dvoma 24-jadrovými procesormi od Intelu, alebo s jedným 48-jadrovým procesorom od AMD (server pre Intel s dvomi zásuvkami a server pre AMD EPYC s jedným) . V BIOSe nastavíme parametre zodpovedajúce spusteným serverom. Toto je 3,03 GHz pre AMD a 2,5 GHz pre Intel. Pri veľkom zjednodušení očakávame, že s rovnakým počtom jadier bude AMD fungovať o 21 % lepšie ako Intel.

kryptografie

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Vyzerá to sľubne pre AMD. V kryptografii s verejným kľúčom funguje o 18 % lepšie. So symetrickým kľúčom stráca pre možnosti šifrovania AES-128-GCM, ale celkovo funguje porovnateľne.

kompresia

Na okrajových serveroch komprimujeme veľa údajov, aby sme ušetrili šírku pásma a zvýšili rýchlosť doručovania obsahu. Údaje odovzdávame cez knižnice C zlib a brotli. Všetky testy boli spustené na súbore HTML blog.cloudflare.com v pamäti.

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

AMD pri použití gzip vyhralo v priemere o 29 %. V prípade brotli sú výsledky ešte lepšie pri testoch s kvalitou 7, ktorú používame na dynamickú kompresiu. Pri teste brotli-9 došlo k prudkému poklesu - vysvetľujeme to tým, že Brotli spotrebuje veľa pamäte a prepĺňa vyrovnávaciu pamäť. AMD však vyhráva s veľkým náskokom.

Mnohé z našich služieb sú napísané v Go. V nasledujúcich grafoch dvakrát skontrolujeme rýchlosť kryptografie a kompresie v Go with RegExp na 32 KB riadkoch pomocou knižnice reťazcov.

Choďte do kryptografie

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Prejsť na kompresiu

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Prejsť na Regexp

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Go Strings

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

AMD má lepšie výsledky vo všetkých testoch s Go okrem ECDSA P256 Sign, kde zaostávalo o 38 % – čo je zvláštne, vzhľadom na to, že v C malo o 24 % lepší výkon. Stojí za to zistiť, čo sa tam deje. Celkovo sa AMD moc nevyhráva, no aj tak vykazuje najlepšie výsledky.

LuaJIT

Často používame LuaJIT na zásobníku. Toto je lepidlo, ktoré drží všetky časti Cloudflare pohromade. A sme radi, že AMD vyhralo aj tu.

Celkovo testy ukazujú, že EPYC 7642 funguje lepšie ako dva Xeony Platinum 6162. AMD stráca v niekoľkých testoch – napríklad AES-128-GCM a Go OpenSSL ECDSA-P256 Sign – ale vo všetkých ostatných vyhráva v priemere 25 %.

Simulácia pracovného zaťaženia

Po našich rýchlych testoch sme spustili servery cez ďalšiu sadu simulácií, v ktorých sa na okrajový zásobník softvéru aplikuje syntetická záťaž. Tu simulujeme pracovné zaťaženie scenára s rôznymi typmi požiadaviek, s ktorými sa možno stretnúť v reálnej práci. Požiadavky sa líšia objemom údajov, protokolmi HTTP alebo HTTPS, zdrojmi WAF, pracovníkmi a ďalšími mnohými premennými. Nižšie je uvedené porovnanie priepustnosti dvoch CPU pre typy požiadaviek, s ktorými sa stretávame najčastejšie.

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Výsledky v grafe sú merané so základnou líniou počítačov s procesorom Intel 9. generácie, normalizované na hodnotu 1,0 na osi x. Napríklad, ak vezmeme jednoduché požiadavky 10 kB cez HTTPS, vidíme, že AMD robí 1,5-krát lepšie ako Intel, pokiaľ ide o požiadavky za sekundu. AMD v týchto testoch dopadlo v priemere o 34 % lepšie ako Intel. Vzhľadom na to, že TDP pre jeden AMD EPYC 7642 je 225 W a pre dva procesory Intel je 300 W, ukazuje sa, že pokiaľ ide o „požiadavky na watt“, AMD vykazuje 2-krát lepšie výsledky ako Intel!

V tomto bode sme sa už jasne prikláňali k možnosti s jednou päticou pre AMD EPYC 7642 ako naše budúce CPU Gen X. Veľmi nás zaujímalo, ako budú servery AMD EPYC fungovať v reálnej prevádzke, a hneď sme poslali niekoľko servery do niektorých z dátových centier.

Skutočná práca

Prvým krokom samozrejme bolo pripraviť servery na prácu v reálnych podmienkach. Všetky stroje v našej flotile pracujú s rovnakými procesmi a službami, čo poskytuje vynikajúcu príležitosť na správne porovnanie výkonu. Ako väčšina dátových centier máme nasadených niekoľko generácií serverov a naše servery zhromažďujeme do klastrov, takže každá trieda obsahuje servery približne rovnakých generácií. V niektorých prípadoch to môže viesť k recyklačným krivkám, ktoré sa medzi klastrami líšia. Ale nie s nami. Naši inžinieri optimalizovali využitie CPU pre všetky generácie, takže bez ohľadu na to, či má CPU konkrétneho stroja 8 alebo 24 jadier, využitie CPU je vo všeobecnosti rovnaké ako ostatné.

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Graf ilustruje náš komentár k podobnosti využitia – nie je významný rozdiel medzi použitím procesorov AMD v serveroch generácie X a použitím procesorov Intel v serveroch generácie 9. To znamená, že testovacie aj základné servery sú zaťažené rovnako . Skvelé. To je presne to, o čo sa na našich serveroch snažíme a potrebujeme to na spravodlivé porovnanie. Dva grafy nižšie zobrazujú počet požiadaviek spracovaných jedným jadrom CPU a všetkými jadrami na úrovni servera.

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD
Požiadavky na jadro

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD
Žiadosti na server

Je vidieť, že AMD v priemere vybaví o 23% viac požiadaviek. Vôbec nie zlé! Na našom blogu sme často písali o spôsoboch, ako zvýšiť výkon Gen 9. A teraz máme rovnaký počet jadier, no AMD robí viac práce s menším výkonom. Zo špecifikácií počtu jadier a TDP je okamžite jasné, že AMD poskytuje vyššiu rýchlosť s vyššou energetickou účinnosťou.

Ale ako sme už spomínali, TDP nie je štandardná špecifikácia a nie je rovnaká pre všetkých výrobcov, pozrime sa teda na skutočnú spotrebu energie. Meraním spotreby energie servera súbežne s počtom požiadaviek za sekundu sme získali nasledujúci graf:

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD

Na základe požiadaviek za sekundu na spotrebovaný watt sú servery Gen X bežiace na procesoroch AMD o 28 % efektívnejšie. Dalo by sa očakávať viac, vzhľadom na to, že TDP AMD je o 25% nižšie, ale treba pripomenúť, že TDP je nejednoznačná charakteristika. Videli sme, že skutočná spotreba AMD je takmer identická s udávaným TDP pri frekvenciách oveľa vyšších ako základ; Intel to nemá. To je ďalší dôvod, prečo TDP nie je spoľahlivým odhadom spotreby energie. CPU od Intelu v našich serveroch Gen 9 sú integrované do viacuzlového systému, zatiaľ čo CPU od AMD fungujú v štandardných 1U serveroch. To nie je v prospech AMD, pretože viacuzlové servery by mali poskytovať väčšiu hustotu s menšou spotrebou energie na uzol, ale AMD stále predbehlo Intel v spotrebe energie na uzol.

Vo väčšine porovnaní naprieč špecifikáciami, testovacími simuláciami a výkonom v reálnom svete dosahovala konfigurácia 1P AMD EPYC 7642 výrazne lepšie výsledky ako 2P Intel Xeon 6162. Za určitých podmienok môže AMD fungovať až o 36 % lepšie a veríme, že optimalizáciou hardvéru a softvéru, môžeme toto zlepšovanie dosahovať priebežne.

Ukázalo sa, že AMD vyhralo.

Ďalšie grafy zobrazujú priemernú latenciu a latenciu p99 pri behu NGINX počas 24-hodinového obdobia. Procesy na AMD bežali v priemere o 25 % rýchlejšie. Na p99 to beží o 20-50% rýchlejšie v závislosti od dennej doby.

Záver

Inžinieri hardvéru a výkonu Cloudflare vykonávajú značné množstvo testovania a výskumu, aby určili najlepšiu konfiguráciu servera pre našich zákazníkov. Radi tu pracujeme, pretože dokážeme vyriešiť veľké problémy, ako sú tieto, a môžeme vám pomôcť vyriešiť vaše problémy so službami, ako je bezserverové edge computing a množstvo bezpečnostných riešení, ako je Magic Transit, Argo Tunnel a DDoS ochrana. Všetky servery v sieti Cloudflare sú nakonfigurované tak, aby fungovali spoľahlivo, a vždy sa snažíme, aby každá ďalšia generácia serverov bola lepšia ako predchádzajúca. Veríme, že AMD EPYC 7642 je odpoveďou, pokiaľ ide o procesory Gen X.

Pomocou Cloudflare Workers vývojári nasadzujú svoje aplikácie v našej rozširujúcej sa sieti po celom svete. Sme hrdí na to, že umožňujeme našim zákazníkom sústrediť sa na písanie kódu, zatiaľ čo my sa zameriavame na bezpečnosť a spoľahlivosť v cloude. A dnes s ešte väčším potešením oznamujeme, že ich práca bude nasadená na našich serveroch generácie X s procesormi AMD EPYC druhej generácie.

Cloudflare si pre servery desiatej generácie vyberá procesory od AMD
Procesory EPYC 7642, kódové označenie "Rím" [Rím]

Použitím AMD EPYC 7642 sa nám podarilo zvýšiť náš výkon a uľahčiť rozšírenie našej siete do nových miest. Rím nebol postavený za deň, no mnohým z vás bude čoskoro bližšie.

V posledných rokoch sme experimentovali s mnohými x86 čipmi od Intelu a AMD, ako aj s procesormi od ARM. Očakávame, že títo výrobcovia CPU budú s nami pokračovať v spolupráci aj v budúcnosti, aby sme mohli všetci spoločne vybudovať lepší internet.

Zdroj: hab.com

Pridať komentár