Processzor-dilemma: nagy frekvencia + kevés mag vs. kis frekvencia + sok mag?

Vajon mikor döntünk jól? Ha egy sokmagos szerverprocit veszünk – akár kettőt is -, amiknél az órajel alacsonyabb, vagy egy kevesebb maggal, de nagyobb single core teljesítménnyel rendelkező példányt választunk? Hogyan döntsük el a kérdést?

A processzorok erejét sokáig úgy mértük, hogy összehasonlítottuk az órajelüket, és amelyik nagyobb volt, az volt a jobb. Mára már egyáltalán nem egyértelmű a helyzet. “Minél több a mag, annál jobb a proci” – hallunk ilyen állítást olyanoktól is, akik egyébként IT területen dolgoznak. Ebből is látszik, hogy a “sokmaglobbi”, de főleg a “több processzor lobbi” milyen hatással volt a gondolkozásunkra, és hogy átfordította a GHz-ek ellenőrzését a magszámok fétisére. Sajnos azonban soha többé nem lesz annyira egyértelmű a helyzet, mint 2000 előtt.

Amikor a többmagos CPU-k megjelentek a piacon a 2000-es évek közepén, a szervertermekben szinte azonnal megjelentek a két socketes szerverek. Ha már egy processzorban kettő, négy, hat mag található, akkor miért ne tennénk rögtön kettőt egymás mellé, hogy még több fizikai magot építsünk be, ezáltal pedig… még erősebb gépünk legyen!

Hol tart most ez a folyamat? Egy kicsit előre, egy kicsit hátralépünk. Az AMD augusztusban hatalmas bejelentést tett az új EPYC Rome szerverprocesszorokkal. A 64 magos, 128 thread-et kezelni képes CPU egyetlen socket-en képes elverni az Intelt úgy, hogy abból kettőt is bepakolunk, két socketre. Mondanom sem kell: kevesebb pénzért. Az AMD 7 nanométeren gyártva ezzel meghirdette a “kompromisszumok nélküli single socket szerverek” korát, amivel a 14 nanométeren, jövőre is csak 10 nanométeren gyártó Intel jelenleg nehezen tudja felvenni a versenyt.

A Lenovo mindenki meglepetésére egyből két olyan Rome architektúrára épülő szervert dob piacra, amik egyetlen socketet, egyetlen EPYC processzort kaptak, vagyis várakozás nélkül tették magukévá az AMD pozícióit.

A nyers erő

Pedig a magasabb órajelű processzorok, még ha kevesebb maggal is dolgoznak, még mindig nagyon jók bizonyos esetekben. Sőt, nagyon jók az esetek nagy részében, amikor hagyományos, szekvenciális feladatot kell ellátni, és kevés a párhuzamos szálak iránti igény. A workloadtól függ tehát, hogy mikor lehet szükség az egyetlen magban található nagyobb erőtartalékra.

Nem mindegy az sem, hogy az alkalmazás, operációs rendszer vagy feladat mennyire van felkészítve a több szálon történő futásra, mennyire képes paralel feladatok futtatására. Egy szerverteremben azonban általában világos a helyzet: a több mag szinte mindig jobb, hiszen sok ügyfél, sok párhuzamos request adódik, amiket sok fizikai vagy virtuális maggal tudunk jól ellátni.

Népszerű szolgáltatásunk a VPS, vagyis a virtuális privát szerver, amikor egy szerveren akár több előfizető is futtathatja saját virtuális gépét. Ilyenkor nemcsak egy adott felhasználó futtat olyan feladatokat, amiknek optimálisabb a több fizikai mag, de egyszerre több ilyen felhasználó is futtathat sokszálas műveleteket. A rendszer fantasztikusan skálázható, mert újabb ép újabb gépek kapcsolhatóak be a VPS alá, és a leterheltségtől függően tudunk egy adott fizikai szervert is olyan ügyfelekkel “megpakolni”, hogy sose legyen kevés a rendelkezésre álló mag, memória, számítási teljesítmény a VPS számára.

Persze a sok magnak van hátránya is, hiszen a skálázás ezek között overheadet eredményez, a feladatok ütemezése a magok között szintén overheadet jelent, a memória elérése pedig időbe telik. Ha két fizikai mag ugyanazt a rendszerbuszt és memória sávszélességet használja, akkor ez is jelentheti könnyen a limitet a számára – hiába van kétszer annyi magunk ugyanazon az órajelen, mégsem lesz a teljesítmény kétszer akkora. Ezeket mind figyelembe kell venni, amikor megtervezzük a rendelkezésre álló erőforrásokat: pontosan ismerni kell a feladatot, amit a processzorra bízunk, ahhoz, hogy tényleg optimális döntést tudjunk hozni.

Energiatakarékosság

Minden processzorral szemben elvárás, hogy amikor kevés dolga van, akkor keveset is fogyasszon. A több processzoros, több magos rendszereknél természetesen fennáll, hogy amíg nincs szükség az újabb magra, addig az adott mag egyáltalán nem is dolgozik. Itt látható például az  iPlanet Web Server 7.0.9 dokumentációjából egy kép, ami elmagyarázza, hogyan kezeli a webeszerver a szálakat, és miként kapcsol be újabb és újabb szálat, de csak akkor, amikor szükség van rá a request feldolgozásánál.

 

web server

Forrás: https://docs.oracle.com/cd/E19146-01/821-1834/geeie/index.html

 

De a kevés maggal, de nagyobb órajelen dolgozó processzorok sem viselkednek már energiavámpírként. Kis kihasználtság esetén az órajelet is alacsonyabb szinten tartják, a Turbo Boost pedig eleve azt jelenti, hogy csak igény esetéb kapcsol a processzor igazán magas tartományba.

Egy kicsit ebből, egy kicsit abból?

Láthattuk, hogy az ideális processzor, vagy processzorok kiválasztása nem kis feladat azok számára, akik esetleg nincsenek is teljesen képben az alkalmazásuk igényeivel, vagy épp nem tudják megjósolni, hány ügyfél küldözgeti majd a requesteket a CPU-knak. Számukra lehet megoldás az olyan heterogén rendszer, ami többféle magot vagy processzort pakol be egyazon házba, hogy az adott, specializált feladatokat a számára megfelelő CPU dolgozza fel. Nem kell messze menni az ilyen megoldásokhoz, a Qualcomm Snapdragon, Nvidia Tegra, Samsung Exynos és az Apple A jelzésű SoC-jei is ezen elgondolás mentén működnek. Nyilván nem szervertermi környezetben.

A legtöbb alkalmazás sokféle utasítással dolgozik, amik egy része párhuzamosítható, más részük azonban nem. Nyilván előbbieknek sok mag kell, alacsonyabb órajelen, míg utóbbiaknak egy nagyon erős szekvenciális CPU lenne ideális. Mi lenne, ha mindenből adnánk neki? Ez olyan, mint két évszak határán elküldeni a gyereket osztálykirándulásra: fürdőnadrágot és sífelsőt is bepakolunk neki, aztán majd kiveszi, ami épp kell neki.

Erőforrásokkal történő pazarlásnak számít azonban, ha nem használja az összes bepakolt ruhát, és feleslegesen cipeli végig az úton. Emiatt aztán egy “minden eshetőségre felkészült” heterogén rendszer felesleges kiadásokat jelent.

Továbbra is a VPS lehet a legjobb megoldás ilyen esetben. Az igény esetén újabb és újabb bekapcsolt processzorok, magok, memória és tárhely az, ami lehetőséget ad az ideális rendszer megtalálására, miközben az alkalmazásunk egy pillanatra sem kerül szuflahiányos állapotba. Mi pedig alig várjuk, hogy bekapcsolhassuk az AMD szervereinket, hogy végre megtudjuk, hogy egyetlen socketen 128 szál kezelése miként változtatja meg egy teljes rack-szekrény teljesítménysűrűségét, és hogy a VPS-eink számára mit jelent majd ez a változás.

RackForest szolgáltatások:

Tárhely bérlés

VPS bérlés

Dedikált szerverbérlés

Szerver hoszting

Aktuális szerver bérlet akciónk a készlet erejéig itt érhető el!

 

További cikkek:

 

 

RackForest szerver