A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

Naponta több mint egymilliárd egyedi IP-cím halad át a Cloudflare hálózaton; másodpercenként több mint 11 millió HTTP-kérést szolgál ki; 100 ms-on belül van az internetes lakosság 95%-ától. Hálózatunk több mint 200 ország 90 városát öleli fel, és mérnökcsapatunk rendkívül gyors és megbízható infrastruktúrát épített ki.

Nagyon büszkék vagyunk munkánkra, és elkötelezettek vagyunk az Internet jobb és biztonságosabb hellyé tételében. A Cloudflare hardvermérnökei mélyen ismerik a szervereket és azok összetevőit, hogy megértsék és kiválaszthassák a legjobb hardvert a teljesítmény maximalizálása érdekében.

Szoftververemünk nagy terhelésű számítástechnikát kezel, és erősen CPU-függő, ezért mérnökeinknek folyamatosan optimalizálniuk kell a Cloudflare hatékonyságát és megbízhatóságát a verem minden szintjén. Szerver oldalon a feldolgozási teljesítmény növelésének legegyszerűbb módja CPU magok hozzáadásával. Minél több mag fér el egy szerveren, annál több adatot tud feldolgozni. Ez azért fontos számunkra, mert termékeink és ügyfeleink sokfélesége idővel növekszik, és a kérések növekedése nagyobb teljesítményt kíván a szerverektől. Teljesítményük növelése érdekében növelnünk kellett a magok sűrűségét – és pontosan ezt értük el. Az alábbiakban részletes adatokat közölünk a 2015 óta telepített szervereink processzorairól, beleértve a magok számát is:

-
Gen 6
Gen 7
Gen 8
Gen 9

Az első lépések
2015
2016
2017
2018

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

Fizikai magok
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 magonként
10.65W
8.50W
7.08W
6.25W

2018-ban nagyot ugrottunk a kiszolgálónkénti magok teljes számában a Gen 9-el. A környezetterhelés 33%-kal csökkent a 8. generációhoz képest, így lehetőségünk nyílik a hangerő és a rackenkénti számítási teljesítmény növelésére. A hőelvezetésre vonatkozó tervezési követelmények (Hőtervezési teljesítmény, TDP) említik, hogy kiemeljék, hogy energiahatékonyságunk is nőtt az idő múlásával. Ez a mutató fontos számunkra: először is kevesebb szenet akarunk kibocsátani a légkörbe; másodszor, szeretnénk a lehető legjobban kihasználni az adatközpontokból származó energiát. De tudjuk, hogy van mire törekednünk.

Fő meghatározó mérőszámunk a wattonkénti kérések száma. Magok hozzáadásával növelhetjük a másodpercenkénti kérések számát, de az energiaköltségkereten belül kell maradnunk. Korlátoznak bennünket az adatközpontok energiaellátási infrastruktúrája, amely a kiválasztott áramelosztó moduljainkkal együtt egy bizonyos felső határt ad minden szerver rack számára. Szerverek rackhez való hozzáadása növeli az energiafogyasztást. Az üzemeltetési költségek jelentősen megnövekednek, ha túllépjük a rackenkénti energiakorlátot, és új állványokat kell beépíteni. Növelnünk kell a feldolgozási teljesítményt, miközben ugyanazon az energiafogyasztási tartományon belül kell maradnunk, ami növeli a wattonkénti kéréseket, ami a legfontosabb mérőszámunk.

Ahogy azt sejteni lehetett, a tervezési szakaszban alaposan tanulmányoztuk az energiafogyasztást. A fenti táblázat azt mutatja, hogy nem szabad időt vesztegetnünk energiaéhesebb CPU-k telepítésével, ha a magonkénti TDP magasabb, mint a jelenlegi generációé – ez negatívan befolyásolja a mérőszámunkat, a wattonkénti kéréseket. Gondosan áttanulmányoztuk a piacon lévő X generációnk üzemkész rendszereit, és meghoztuk a döntést. A 48 magos Intel Xeon Platinum 6162 kétfoglalatos kialakításról áttérünk a 48 magos AMD EPYC 7642 egyfoglalatos kialakításra.

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Mikroarchitektúra
"Skylake"
„Zen 2”

Kód név
"Skylake SP"
"Róma"

Műszaki folyamat
14nm
7nm

magok
X 2 24
48

frekvencia
1.9 GHz
2.4 GHz

L3 Gyorsítótár/foglalat
24 x 1.375 MiB
16 x 16 MiB

Memória/aljzat
6 csatorna, DDR4-2400-ig
8 csatorna, DDR4-3200-ig

TDP
2 x 150W
225W

PCIe/aljzat
48 sávos
128 sávos

ISA
x86-64
x86-64

A specifikációkból egyértelmű, hogy az AMD chipje lehetővé teszi számunkra, hogy ugyanannyi magot tartsunk, miközben csökkentjük a TDP-t. A 9. generáció magonkénti TDP-je 6,25 W, az X. generációé pedig 4,69 W lesz. 25%-kal csökkentve. A megnövelt frekvenciának, és talán az egyszerűbb, egy foglalattal rendelkező kialakításnak köszönhetően feltételezhető, hogy az AMD chip a gyakorlatban jobban teljesít majd. Jelenleg különféle teszteket és szimulációkat futtatunk, hogy megnézzük, mennyivel fog jobban teljesíteni az AMD.

Egyelőre vegyük észre, hogy a TDP a gyártó specifikációiból leegyszerűsített mérőszám, amelyet a szervertervezés és a CPU kiválasztásának korai szakaszában használtunk. Egy gyors Google-keresés felfedi, hogy az AMD és az Intel eltérően közelíti meg a TDP-t, ami megbízhatatlanná teszi a specifikációt. A valódi CPU-fogyasztás, és ami még fontosabb, a szerver energiafogyasztása az, amit valóban használunk végső döntésünk meghozatalakor.

Az ökoszisztéma felkészültsége

A következő processzorunk kiválasztásához vezető utunk megkezdéséhez különböző gyártók CPU-inak széles skáláját vizsgáltuk meg, amelyek jól illeszkedtek szoftververemünkhöz és szolgáltatásainkhoz (C, LuaJIT és Go nyelven írva). A sebesség mérésére szolgáló eszközkészletet már részletesen leírtuk blogunk egyik cikkében. Ebben az esetben ugyanazt a készletet használtuk - ez lehetővé teszi a CPU hatékonyságának ésszerű időn belüli értékelését, amely után mérnökeink elkezdhetik programjainkat egy adott processzorhoz igazítani.

Különféle processzorokat teszteltünk sokféle magszámmal, foglalatszámmal és frekvenciával. Mivel ez a cikk arról szól, hogy miért döntöttünk az AMD EPYC 7642 mellett, a blog összes diagramja arra összpontosít, hogyan teljesítenek az AMD processzorok az Intel Xeon Platinum 6162-hez képest. 9. generációnk.

Az eredmények egyetlen szerver méréseinek felelnek meg minden processzorváltozattal – azaz két 24 magos Intel processzorral, vagy egy 48 magos AMD processzorral (szerver az Intelhez két foglalattal és szerver az AMD EPYC-hez egy). . A BIOS-ban beállítjuk a futó szervereknek megfelelő paramétereket. Ez 3,03 GHz az AMD-nél és 2,5 GHz az Intelnél. Nagymértékben leegyszerűsítve azt várjuk, hogy azonos számú mag mellett az AMD 21%-kal jobban teljesít, mint az Intel.

kriptográfia

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

Ígéretesnek tűnik az AMD számára. 18%-kal jobban teljesít nyilvános kulcsú titkosításnál. Szimmetrikus kulccsal veszít az AES-128-GCM titkosítási opcióknál, de összességében hasonló teljesítményt nyújt.

Tömörítés

A szélső szervereken sok adatot tömörítünk a sávszélesség megtakarítása és a tartalomszállítás sebességének növelése érdekében. Az adatokat a zlib és brotli C könyvtárakon továbbítjuk. Az összes tesztet a blog.cloudflare.com HTML-fájlban futtattuk a memóriában.

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

Az AMD átlagosan 29%-kal nyert gzip használatával. A brotli esetében még jobbak az eredmények az általunk dinamikus tömörítéshez használt 7-es minőségi teszteken. A brotli-9 teszten éles csökkenés tapasztalható - ezt azzal magyarázzuk, hogy a Brotli sok memóriát fogyaszt, és túlcsordítja a gyorsítótárat. Az AMD azonban nagy fölénnyel nyer.

Sok szolgáltatásunk Go nyelven íródott. A következő grafikonokon a 32 KB-os sorokon a sztringkönyvtár segítségével ellenőrizzük a Go with RegExp kriptográfiai és tömörítési sebességét.

Irány a kriptográfia

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

Menj a tömörítéshez

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

Irány a Regexp

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

Go Strings

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

Az AMD minden tesztben jobban teljesít Go-val, kivéve az ECDSA P256 Sign-ot, ahol 38%-kal volt lemaradva – ami furcsa, tekintve, hogy C-ben 24%-kal jobban teljesített. Érdemes utánajárni, mi folyik ott. Összességében az AMD nem nyer sokat, de így is a legjobb eredményeket mutatja.

LuaJIT

Gyakran használjuk a LuaJIT-et a veremben. Ez az a ragasztó, amely a Cloudflare összes alkatrészét összetartja. És örülünk, hogy az AMD itt is nyert.

Összességében a tesztek azt mutatják, hogy az EPYC 7642 jobban teljesít, mint két Xeon Platinum 6162. Az AMD veszít néhány teszten – például az AES-128-GCM és a Go OpenSSL ECDSA-P256 Sign –, de az összes többit nyeri, átlagosan 25%-ról.

Munkaterhelés szimuláció

Gyorsteszteink után egy újabb szimulációsorozaton futtattuk le a szervereket, amelyekben szintetikus terhelést alkalmazunk a szoftver szélső veremére. Itt szimulálunk egy forgatókönyv-terhelést különböző típusú kérésekkel, amelyek a valós munkában is előfordulhatnak. A kérések adatmennyiségben, HTTP- vagy HTTPS-protokollokban, WAF-forrásokban, dolgozókban és sok más változóban változnak. Az alábbiakban összehasonlítjuk a két CPU átviteli sebességét a leggyakrabban előforduló kérések típusaihoz.

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

A diagramon szereplő eredményeket a 9. generációs Intel-alapú gépek alapvonalához viszonyítva mérjük, az x tengelyen 1,0 értékre normalizálva. Ha például egyszerű 10 KiB-os kéréseket veszünk át HTTPS-en keresztül, azt láthatjuk, hogy az AMD másfélszer jobban teljesít, mint az Intel a másodpercenkénti kérések tekintetében. Az AMD ezeken a teszteken átlagosan 1,5%-kal jobban teljesített, mint az Intel. Figyelembe véve, hogy egyetlen AMD EPYC 34 TDP-je 7642 W, két Intel processzoré pedig 225 W, kiderül, hogy a „kérések wattonként” tekintetében az AMD kétszer jobb eredményeket mutat, mint az Intel!

Ezen a ponton már egyértelműen az AMD EPYC 7642, mint jövőbeli Gen X CPU-k egyfoglalatos opciója felé hajlottunk. Nagyon érdekelt, hogy az AMD EPYC szerverek hogyan teljesítenek majd a valós munkavégzésben, és azonnal elküldtünk néhányat kiszolgálókat néhány adatközpontból.

Valódi munka

Az első lépés természetesen a szerverek felkészítése volt a valós körülmények közötti munkára. Flottánk minden gépe ugyanazokkal a folyamatokkal és szolgáltatásokkal dolgozik, ami kiváló lehetőséget ad a teljesítmény helyes összehasonlítására. A legtöbb adatközponthoz hasonlóan nálunk is több generációs kiszolgáló van telepítve, és a szervereinket fürtökbe gyűjtjük úgy, hogy minden osztály megközelítőleg azonos generációjú szervereket tartalmazzon. Egyes esetekben ez olyan újrahasznosítási görbéket eredményezhet, amelyek klaszterenként eltérőek. De nem velünk. Mérnökeink minden generáció számára optimalizálták a CPU-kihasználást, így függetlenül attól, hogy egy adott gép CPU-ja 8 vagy 24 maggal rendelkezik, a CPU kihasználtsága általában megegyezik a többivel.

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

A grafikon szemlélteti észrevételünket a kihasználtság hasonlóságáról – nincs jelentős különbség az AMD CPU-k használata között a Gen X generációs szervereken és az Intel processzorok használata között a Gen 9 generációs szervereken. Ez azt jelenti, hogy mind a teszt-, mind az alapkiszolgálók egyformán terheltek. . Nagy. Pontosan erre törekszünk szervereinken, és erre van szükségünk a korrekt összehasonlításhoz. Az alábbi két grafikon az egy CPU mag és az összes mag által feldolgozott kérések számát mutatja szerver szinten.

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz
Kérések magonként

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz
Kérések a szerverhez

Látható, hogy az AMD átlagosan 23%-kal több kérést dolgoz fel. Egyáltalán nem rossz! Blogunkon gyakran írtunk a Gen 9 teljesítményének növelésének módjairól. Mostanra ugyanannyi magunk van, de az AMD több munkát végez kevesebb energiával. A magok számára és a TDP-re vonatkozó előírásokból azonnal kiderül, hogy az AMD nagyobb sebességet biztosít nagyobb energiahatékonyság mellett.

De ahogy már említettük, a TDP nem szabványos specifikáció, és nem minden gyártónál egyforma, ezért nézzük a tényleges energiafelhasználást. A szerver energiafogyasztását a másodpercenkénti kérések számával párhuzamosan mérve a következő grafikont kaptuk:

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz

A másodpercenkénti, elköltött wattonkénti kérések alapján az AMD processzorokon futó Gen X szerverek 28%-kal hatékonyabbak. Többet is várhatunk, mivel az AMD TDP-je 25%-kal alacsonyabb, de nem szabad elfelejteni, hogy a TDP kétértelmű jellemző. Láttuk, hogy az AMD tényleges energiafogyasztása szinte megegyezik a megadott TDP-vel az alapnál jóval magasabb frekvenciákon; Az Intelnek ilyen nincs. Ez egy másik oka annak, hogy a TDP nem megbízható becslés az energiafogyasztásról. A Gen 9 szervereinkben található Intel CPU-k több csomópontos rendszerbe vannak integrálva, míg az AMD CPU-i szabványos 1U méretű szerverekben működnek. Ez nem kedvez az AMD-nek, mivel a többcsomópontos kiszolgálóknak nagyobb sűrűséget kell biztosítaniuk, kevesebb csomópontonkénti energiafogyasztás mellett, de az AMD így is megelőzte az Intelt a csomópontonkénti fogyasztás tekintetében.

A műszaki adatok, a tesztszimulációk és a valós teljesítmény legtöbb összehasonlítása során az 1P AMD EPYC 7642 konfiguráció lényegesen jobban teljesített, mint a 2P Intel Xeon 6162. Bizonyos körülmények között az AMD akár 36%-kal is jobban teljesíthet, és úgy gondoljuk, hogy optimalizálva hardver és szoftver fejlesztését folyamatosan el tudjuk érni.

Kiderült, hogy az AMD nyert.

További grafikonok az átlagos késleltetést és a p99 késleltetést mutatják, amikor az NGINX fut 24 órán keresztül. Az AMD folyamatai átlagosan 25%-kal gyorsabban futottak. A p99-en napszaktól függően 20-50%-kal gyorsabban megy.

Következtetés

A Cloudflare hardver- és teljesítménymérnökei jelentős mennyiségű tesztelést és kutatást végeznek, hogy meghatározzák ügyfeleink számára a legjobb szerverkonfigurációt. Szeretünk itt dolgozni, mert meg tudjuk oldani az ehhez hasonló nagy problémákat, és segíthetünk megoldani a problémáit olyan szolgáltatásokkal, mint a szerver nélküli szélső számítástechnika és számos biztonsági megoldás, mint például a Magic Transit, az Argo Tunnel és a DDoS védelem. A Cloudflare hálózat összes szervere úgy van beállítva, hogy megbízhatóan működjön, és mindig arra törekszünk, hogy a szerverek minden következő generációja jobb legyen, mint az előző. Úgy gondoljuk, hogy az AMD EPYC 7642 a megoldás, ha a Gen X processzorokról van szó.

A Cloudflare Workers segítségével a fejlesztők a világszerte bővülő hálózatunkon telepítik alkalmazásaikat. Büszkék vagyunk rá, hogy ügyfeleink a kódírásra összpontosíthatnak, miközben mi a felhőben a biztonságra és a megbízhatóságra összpontosítunk. És ma még nagyobb örömünkre szolgál bejelenteni, hogy munkájukat a második generációs AMD EPYC processzorokat futtató Gen X generációs szervereinkre telepítik.

A Cloudflare az AMD processzorait választja a tizedik generációs élkiszolgálókhoz
EPYC 7642 processzorok, kódnév "Róma" [Róma]

Az AMD EPYC 7642 használatával növelni tudtuk teljesítményünket, és megkönnyítettük hálózatunk új városokra való kiterjesztését. Róma nem egy nap alatt épült fel, de hamarosan sokakhoz közelebb lesz.

Az elmúlt néhány évben számos Intel és AMD x86-os chippel, valamint ARM processzorokkal kísérleteztünk. Arra számítunk, hogy ezek a CPU-gyártók a jövőben is együttműködnek velünk, hogy mindannyian együtt építhessünk egy jobb internetet.

Forrás: will.com

Hozzászólás