2024. április 19., péntek

Gyorskeresés

Kalkuláljunk szerver (Intel Xeon) gyakorlati teljesítményt!

Írta: |

[ ÚJ BEJEGYZÉS ]

Mivel ez a kérdés szinte napi szinten felmerül és mindenkinek külön kell megválaszolnom, ezért gondoltam közzéteszek egy pár gondolatot a témában.

Kérdések:
"Játékra jó lesz ez a 28 magos Xeon?"
"Hogy fog 16 szálon futni az xy program pontosan?"
"Mennyivel gyorsabb ez a 2x 8 magos Xeon procis szerver az asztali i7 3770 procimhoz képest?"

stb, azt hiszem ebből már érezni a lényeget...

Update: Mielőtt nekem ugranak a kritikusok, kérem figyelembe venni, hogy az alábbi írás figyelmen kívül hagy minden egyéb teljesitményt befolyásoló tényezőt, vagy inkább az ideális szituációt tételezi fel, amikor a teljesitményt valóban a processzor határozza meg és nem egyéb szűk keresztmetszet (RAM, GPU, disk, hálózat, stb). Tehát az alábbiak akkor tekinthetőek igaznak, ha például azok a peremfeltételek teljesülnek, hogy a memóriacsatornák megfelelően ki vannak populálva modulokkal, ami az adott alkalmazáshoz bőven elegendő memóriasávszélt biztosít, valamint GPU-t is használó alkalmazásoknál nem egy gyenge GPU fogja vissza a rendszert.
Ha mindent figyelembe vennénk, akkor egy könyvet lehetne írni a témáról.
Én most szigorúan a nyers cpu teljesitményre szorítkoztam. A számításom nyugodtan ellenőrízhető például Cinebench R15 CPU pontszámokkal! (R20 torzítja az eredményt az AVX miatt, ezért R15-öt használnak különböző architekturák összehasonlítására). És igen, a különböző speciális utasítás készletekre (pl. AVX) sem tértem ki, az megint egy külön nagy témakör lenne.

Íme egy válaszom:

Nyers erőben a fenti szerver (itt konkrétan DL360e G8 2x E5-2450L szerverről volt szó) bármilyen asztali szokásos i7-et odaver elég rendesen, ami mondjuk max 4 magos.
Simán a magok számát felszorozhatod a frekivel, így kapsz egy számot, ami nagyon jó közelitéssel mutatja a procik egymáshoz képest mért nyers sebességét. (teoretikus a szálak számával ideálisan skálázódó alkalmazással) Szerencsére a szerverekre írt szoftverek nagyon nagy része gyakorlatilag tök lineárisan skálázódik a szálakkal, tehát a gyakorlatban is pontosan ezt a sebesség különbséget fogod mérni/tapasztalni. (ilyen programok pl SQL és egyéb adatbázis szerverek, renderelő, kódoló, animációs, modellező programok, data mining, crypto mining, kulcstörők, webes böngészők, fordító környezetek, VM host rendszerek, és minden ami jól párhuzamosítható feladatokat végez és ennek megfelelően is lett a szoftver leprogramozva)
Azt, hogy konkrétan a te általad használt alkalmazások hogyan skálázódnak a szálak számával, azt neked kell kideríteni. Googlizással, vagy saját méréseiddel ezt ki lehet tesztelni aránylag egyszerűen. (letiltasz magokat biosban, stopperóra, benchmark, stb)

hasraütésre számolási példa:
i7: 4*3,6= 14.4
2db 2450L: 16*2.0 = 32

Tehát 14,4 vs 32, azt jelenti, hogy több mint 2-szer gyorsabb a nagyfrekis azonos architekturájú i7-esnél ez a két procis szerver.
Ha az architektúra eltér, akkor tapasztalatom szerint 1,08 a szorzófaktor, ami reálisan adja vissza az egymást követő architektúrák közötti sebességviszonyt.
Tehát pl azonos frekijű Xeon E5 v1 és v2 között 1,08 (+8%) a sebességkülönbség kb.

Tehát az órajel miatti pánikolás általában teljesen alaptalan, kivétel képez ha a szoftver rosszul (optimalizálatlanul) van megírva és nem képes skálázódni a szálakkal.

Persze vannak a válaszidő kritikus alkalmazások, ahol sok szál esetén is fontos, hogy a szálak minél magasabb egyéni sebességgel fussanak, de aki ilyet futtat az már valószínűleg jobban képben van (pl tőzsdei botok, telekommunikációs alkalmazások, stb).

Van még továbbá az a speciálisabb szituáció, amivel már többször találkoztam, hogy habár az egyes programok nem használnak sok szálat, de több ilyen programot futtatnak párhuzamosan, akkor az jól ki tudja használni a szerver architektúrát. (pl játékszerverből 10-20 féle fut párhuzamosan)

Negatív példa: a játékok nagy része tojik bele a sok szálba, mert elsősorban nem szerver architekturára optimalizálják őket, úgyhogy játékra pl kifejezetten nem ajánlom az alacsony frekvenciájú Xeon procis szervereket.

  • Nem lehet hozzászólni
Copyright © 2000-2024 PROHARDVER Informatikai Kft.