Benchmarkok Linux szerverekhez: nyitott eszközök választéka
Továbbra is beszélünk a CPU teljesítményének értékelésére szolgáló eszközökről Linux gépeken. Ma az anyagban: temci, uarch-bench, likwid, perf-tools és llvm-mca.
Ez egy eszköz két program végrehajtási idejének becslésére. Lényegében lehetővé teszi két alkalmazás végrehajtási idejének összehasonlítását. A segédprogram szerzője egy német diák, Johannes Bechberger volt, aki 2016-ban egyetemi diplomamunkája részeként dolgozta ki. A mai eszköz forgalmazza licence a GNU General Public License.
Johannes egy olyan eszközt akart létrehozni, amely lehetővé teszi számára egy számítógépes rendszer teljesítményének mérését ellenőrzött környezetben. Ezért a temci egyik fő jellemzője a tesztkörnyezet beállításának lehetősége. Például, tud: CPU frekvenciakezelő beállításainak módosítása, letiltása hiperszálas és L1 és L2 gyorsítótárak esetén kapcsolja ki a turbó módot az Intel processzorokon stb. A temci eszközöket használ az összehasonlításhoz idő, perf_stat и szoktatás.
Így néz ki a segédprogram az első esetben:
# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times [####################################] 100%
Report for single runs
sleep 0.1 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 100.00000m, deviation = 0.00000%
max_res_set mean = 2.1800k, deviation = 3.86455%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
sleep 0.2 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 200.00000m, deviation = 0.00000%
max_res_set mean = 2.1968k, deviation = 3.82530%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
A benchmarking eredményei alapján a rendszer generál kényelmes jelentés diagramokkal, táblázatokkal és grafikonokkal, ami megkülönbözteti a temcieket a hasonló megoldásoktól.
A temci hiányosságai közül kiemelkedik „fiatalsága”. Emiatt ő nem minden támogatott hardver és szoftver konfigurációk. Például nehéz futni macOS-en, és egyes funkciók nem érhetők el ARM-alapú rendszereken. A jövőben változhat a helyzet, hiszen a szerző aktívan fejleszti a projektet, a GitHubon pedig fokozatosan nő a csillagok száma – nem is olyan régen még temci megbeszéltük a megjegyzésekben a Hacker News-on.
Travis Downs mérnök által kifejlesztett segédprogram alacsony szintű CPU-funkciók teljesítményének értékelésére.Travis Downs). Mostanában blogol Teljesítmény számít a GitHub oldalakon, ahol benchmarking eszközökről és egyéb kapcsolódó dolgokról beszélnek. Általánosságban elmondható, hogy az uarch-pad még csak most kezd népszerűvé válni, de már meglehetősen gyakori említett a Hacker News lakói a tematikus szálakban a benchmarking eszközeként.
Az Uarch-bench segítségével értékelheti a memória teljesítményét, a párhuzamos adatbetöltési sebességet és a tisztítási munkát YMM regiszterek. Hogy néznek ki a program által generált benchmarking eredmények, megtekinthető a hivatalos adattárban a lap alján.
Érdemes megjegyezni, hogy az uarch-pad, mint a temci, letiltja Intel Turbo Boost funkció (terhelés alatt automatikusan növeli a processzor órajelét), hogy a teszteredmények egységesek legyenek.
A projekt egyelőre a fejlesztés korai szakaszában van, így az uarch-bench nem rendelkezik részletes dokumentációval, és a működése hibákat tartalmazhat - pl. nehézségek ismertek a Ryzen elindításával. Ezenkívül csak az x86-os architektúrák referenciaértékei támogatottak. A szerző azt ígéri, hogy a jövőben további funkciókat ad hozzá, és felkéri Önt, hogy csatlakozzon a fejlesztéshez.
Ez egy eszközkészlet az Intel, AMD és ARMv8 processzorokkal rendelkező Linux gépek teljesítményének értékeléséhez. A Német Szövetségi Oktatási és Kutatási Minisztérium égisze alatt hozták létre 2017-ben, és nyílt forráskódúvá adták ki.
A likwid eszközök közül kiemelhetjük a likwid-powermetert, amely a RAPL regiszterekből jelenít meg információkat a rendszer által fogyasztott teljesítményről, valamint a likwid-setFrequenciest, amivel szabályozhatjuk a processzor frekvenciáját. A teljes listát láthatja megtalálja a tárolóban.
Az eszközt a HPC-kutatásban részt vevő mérnökök használják. Például a likwid-del művek a németországi Erlangen-Nürnbergi Egyetem (RRZE) Regionális Számítástechnikai Központjának szakértői csoportja. Ezen eszközkészlet fejlesztésében is aktívan részt vesz.
Ez az eszköz a Linux szerverek teljesítményének elemzésére benyújtott Brendan Gregg. Ő az egyik fejlesztő DTrace – dinamikus nyomkövetési keretrendszer az alkalmazások valós idejű hibakereséséhez.
A perf-tools a perf_events és az ftrace kernel alrendszereken alapul. Segédprogramjaik lehetővé teszik az I/O késleltetés (iosnoop) elemzését, a rendszerhívási argumentumok nyomon követését (unccount, funcslower, funcgraph és functrace), valamint statisztikák gyűjtését a fájlgyorsítótárban (cachestat) a „találatokról”. Az utóbbi esetben a parancs így néz ki:
A hangszer körül meglehetősen nagy közösség alakult ki (közel 6 ezer csillag a GitHubon). És vannak olyan cégek, amelyek például aktívan használnak perf-eszközöket Netflix. De az eszközt tovább fejlesztik és módosítják (bár az utóbbi időben meglehetősen ritkán adtak ki frissítéseket). Ezért előfordulhatnak hibák a működésében – írja a szerző, hogy a perf-tools néha kernelpánikot okoz.
Egy segédprogram, amely megjósolja, hogy a gépi kód hány számítási erőforrást igényel a különböző CPU-kon. Ő értékeli Ciklusonkénti utasítások (IPC) és a hardver terhelése, amelyet egy adott alkalmazás generál.
Az llvm-mca 2018-ban került bemutatásra a projekt részeként LLVM, amely egy univerzális rendszert fejleszt a programok elemzésére, átalakítására és optimalizálására. Ismeretes, hogy az llvm-mca szerzőit a szoftver teljesítményének elemzésére szolgáló megoldás ihlette meg. IACA az Inteltől és alternatívát keresett. És a felhasználók szerint az eszköz kimenete (elrendezésük és mennyiségük) valóban hasonlít az IACA-ra - példa itt található. Az llvm-mca azonban csak azt fogadja el AT&T szintaxis, ezért nagy valószínűséggel konvertereket kell használnia a munkához.
Amiről blogjainkon és közösségi oldalainkon írunk: