Benchmarkok Linux szerverekhez: nyílt forráskódú eszközök válogatása

Folytatjuk a CPU teljesítményének értékelésére szolgáló eszközök bemutatását Linux gépeken. Ma a következőkről lesz szó: temci, uarch-bench, likwid, perf-tools és llvm-mca.

További benchmarkok:

Benchmarkok Linux szerverekhez: nyílt forráskódú eszközök válogatása
Fotó — Lukas Blazek — Unsplash

temci

Ez egy eszköz, amely lehetővé teszi két program futási időének értékelését. Lényegében lehetőséget ad arra, hogy összehasonlítsuk két alkalmazás végrehajtási idejét. Az eszközt egy német hallgató, Johannes Bechberger készítette, aki 2016-ban a főiskolai végzős munkája keretében fejlesztette ki. Ma az eszköz terjesztésre kerül a GNU General Public License alatt áll.

Johannes olyan eszközt szeretett volna létrehozni, amely képes mérni a számítógépes rendszer teljesítményét ellenőrzött környezetben. Ezért a temci egyik fő jellemzője a tesztkörnyezet testreszabásának lehetősége. Például lehetővé teszi: módosíthatja a CPU frekvenciakezelő beállításait, letilthatja a hyper-threadinget és az L1 és L2 cache-eket, valamint kikapcsolhatja az Intel processzorok turbo módját, és így tovább. A temci a benchmarkoláshoz a következő eszközöket használja: time, perf_stat és getrusage.

Így néz ki a segédprogram működése 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 benchmarkolás eredményei alapján a rendszer használható jelentést készít diagramokkal, táblázatokkal és grafikonokkal, ami megkülönbözteti a temcit a hasonló megoldásoktól.

A temci hátrányai közé tartozik a "fiatal kora". Emiatt nem támogat minden hardveres és szoftveres konfigurációt. Például nehéz futtatni macOS-en, és ARM processzorral rendelkező rendszereken bizonyos funkciók nem elérhetők. A helyzet a jövőben változhat, mivel a szerző aktívan fejleszti a projektet, és a GitHub-on a csillagok száma fokozatosan növekszik – nemrég a temci-t még a Hacker News kommentjeiben is megvitatják.

uarch-bench

Egy eszköz a CPU alacsony szintű funkcióinak teljesítményének értékelésére, amelyet Travis Downs mérnök fejlesztett ki (Travis Downs). Nemrégiben elkezdte írni a blogját Performance Matters a GitHub Pages-en, ahol benchmarkolásról és más kapcsolódó dolgokról beszél. Összességében az uarch-bench eddig csak most kezd népszerűvé válni, de már elég gyakran említve van a Hacker News lakói emlegetik a tematikus beszélgetésekben mint go-to eszközt a benchmarkoláshoz.

Az Uarch-bench lehetővé teszi a memória teljesítményének, a párhuzamos adatbetöltés sebességének és a YMM-regiszterek törlésének értékelését.A program's benchmarking results can be found in the official repository at the bottom of the page.

It is worth noting that uarch-bench, like temci, disables the Intel Turbo Boost feature (which automatically increases the processor's clock frequency under load) to ensure consistent testing results.

Currently, the project is in the early stages of development, so uarch-bench lacks detailed documentation, and there may be bugs in its operation — for example, there are known issues with running on Ryzen. Only benchmarks for x86 architectures are supported. The author promises to add more functionality in the future and invites contributions to the development.

likwid

This is a set of tools for evaluating the performance of Linux machines with Intel, AMD, and ARMv8 processors. It was created under the auspices of the Federal Ministry of Education and Research of Germany in 2017 and released as open source.

Among the tools in likwid, one can highlight likwid-powermeter, which outputs information from RAPL registers about the power consumed by the system, as well as likwid-setFrequencies — which allows controlling the processor frequency. You can find the complete list in the repository.

The tool is used by engineers involved in HPC research. For instance, with likwid a űrlapokban. a group of specialists from the Regional Computing Center of the University of Erlangen-Nuremberg (RRZE) in Germany. They are also actively involved in the development of this toolset.

Benchmarkok Linux szerverekhez: nyílt forráskódú eszközök válogatása
Fotó — Clem Onojeghuo — Unsplash

perf-tools

This tool is for analyzing the performance of Linux servers bemutatott Brendan Gregg. He is one of the developers DTrace of the dynamic tracing framework for real-time application debugging.

At the core of perf-tools are the perf_events and ftrace kernel subsystems. Their utilities allow analyzing input/output (iosnoop) latency, tracking arguments for system calls (unccount, funcslower, funcgraph, and functrace), and collecting statistics on file cache 'hits' (cachestat). In the latter case, the command looks like this:

# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9

A fairly extensive community has formed around the tool (almost 6 thousand stars on GitHub). And there are companies that actively use perf-tools, for example Netflix. Az eszköz azonban folyamatosan fejlődik és módosul (bár az utóbbi időben a frissítések meglehetősen ritkán jelennek meg). Ezért működésében hibák léphetnek fel — a szerző azt írja, hogy néha a perf-tools kernel pánikot okoz.

llvm-mca

Egy olyan segédprogram, amely előrejelzi, hogy mennyi számítási erőforrást igényel a gépi kód különböző CPU-kon. Ez értékeli Ut Instruction Per Cycle (IPC) és az adott alkalmazás által generált hardverterhelést jelzi.

Az llvm-mca-t 2018-ban mutatták be a LLVMprojekt keretein belül, amely egy univerzális elemző, transzformáló és optimalizáló rendszer fejlesztésével foglalkozik. Ismert, hogy az llvm-mca szerzőit az Intel softver teljesítményelemző megoldása, IACA ihlette, és arra törekedtek, hogy alternatívát hozzanak létre. A felhasználók szerint az eszköz kimeneti adatai (formátuma és mennyisége) valóban emlékeztetnek az IACA-ra — például itt található. Azonban az llvm-mca csak AT&T-szintaxis-t fogad el, így valószínűleg konvertálókat kell használni a működéséhez.

Miről írunk blogjainkban és közösségi médiánkban:

Benchmarkok Linux szerverekhez: nyílt forráskódú eszközök válogatása „Mat. modell a Wall Street-től” vagy hogyan optimalizáljuk a felhő költségeit

Benchmarkok Linux szerverekhez: nyílt forráskódú eszközök válogatása Elemzünk a személyes adatok és az I.B. védelmére vonatkozó ajánlásokat — mire érdemes figyelni
Benchmarkok Linux szerverekhez: nyílt forráskódú eszközök válogatása Kockázatok minimalizálása: hogyan ne veszítse el az adatait

Benchmarkok Linux szerverekhez: nyílt forráskódú eszközök válogatása Könyvek azok számára, akik már foglalkoznak rendszeradminisztrációval vagy csak tervezik, hogy elkezdik
Benchmarkok Linux szerverekhez: nyílt forráskódú eszközök válogatása Válogatás: öt könyv és egy kurzus a hálózatokról

Benchmarkok Linux szerverekhez: nyílt forráskódú eszközök válogatásaMi a 1cloud.ru-nál ingyenes "DNS-hosting" szolgáltatást kínálunk. A DNS-bejegyzéseket egyetlen felhasználói fiókon keresztül kezelhetjük.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster