Benchmarky pro servery na Linuxu: výběr otevřených nástrojů

Pokračujeme ve vyprávění o nástrojích pro hodnocení výkonu CPU na strojích s Linuxem. Dnes se zaměříme na: temci, uarch-bench, likwid, perf-tools a llvm-mca.

Další benchmarky:

Benchmarky pro servery na Linuxu: výběr otevřených nástrojů
Foto — Lukas Blazek – Unsplash

temci

Je to nástroj pro hodnocení doby provádění dvou programů. V podstatě umožňuje porovnat dobu běhu dvou aplikací. Autorem utilitky je student z Německa Johannes Bechberger, který ji vyvinul jako součást své bakalářské práce v roce 2016. Dnes je nástroj distribuováno pod licencí GNU General Public License.

Johannes chtěl vytvořit nástroj, který by umožnil měřit výkon výpočetního systému v řízeném prostředí. Proto je jednou z hlavních funkcí temci možnost nastavit testovací prostředí. Například lze: změnit nastavení správce řízení frekvence CPU, vypnout hyper-threading a paměti L1 a L2, vypnout turbo režim na procesorech Intel a další. Pro benchmarkování temci používá nástroje čas, perf_stat a getrusage.

Takto vypadá práce utilitky v prvním případě:

# 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

Na základě výsledků benchmarkingu systém vytváří pohodlnou zprávu s diagramy, tabulkami a grafy, což odlišuje temci od podobných řešení.

Mezi nevýhody temci patří jeho "mládí". Díky tomu nepodporuje všechny konfigurace hardwaru a softwaru. Například je obtížné jej spustit na macOS a na systému s procesorem ARM nejsou některé funkce k dispozici. Do budoucna se situace může změnit, protože autor aktivně vyvíjí projekt a počet hvězdiček na GitHubu postupně roste - nedávno se o temci dokonce diskutovalo v komentářích na Hacker News.

uarch-bench

Nástroj pro hodnocení výkonu nízkoúrovňových funkcí CPU, který vyvinul inženýr Travis Downs. Nedávno začal vést svůj blogPerformance Mattersna GitHub Pages, kde hovoří o nástrojích pro benchmarking a dalších souvisejících věcech. Uarch-bench zatím teprve začíná získávat popularitu, ale již je poměrně často členy komunity Hacker News zmiňován v tematických vláknech jako go-to nástroj pro benchmarking. Uarch-bench umožňuje hodnotit výkon paměti, rychlost paralelního načítání dat a práci s vyčišťováním se uvádí registrů YMM.

Uarch-bench umožňuje hodnotit výkonnost paměti, rychlost paralelního načítání dat a funkci čištění. YMM registry. Jak vypadají výsledky benchmarkingu generované programem, můžete najít v oficiálním repozitáři na spodní části stránky.

Je třeba poznamenat, že uarch-bench, stejně jako temci, deaktivuje funkci Intel Turbo Boost (ta automaticky zvyšuje takt procesoru při zátěži), aby byly výsledky testování konzistentní.

Projekt se zatím nachází v raných fázích vývoje, proto uarch-bench nemá podrobnou dokumentaci a v jeho provozu mohou nastat chyby — například, jsou známy problémy s spuštěním na Ryzen. Podporovány jsou pouze benchmarky pro architektury x86. Autor slibuje přidání více funkcionalit v budoucnu a vyzývá k zapojení do vývoje.

likwid

Je to sada nástrojů pro hodnocení výkonu Linuxových strojů s procesory Intel, AMD a ARMv8. Byla vytvořena pod záštitou Německého spolkového ministerstva školství a výzkumu v roce 2017 a byla předána do open source.

Mezi nástroji likwid lze vyzdvihnout likwid-powermeter, který zobrazuje informace z RAPL registrů o spotřebované výkonu systému, a likwid-setFrequencies — umožňuje řídit frekvenci procesoru. Úplný seznam můžete najít v repozitáři.

Nástrojem používají inženýři, kteří se zabývají výzkumem v oblasti HPC. Například s likwid pracuje skupina specialistů z Regionálního výpočetního centra univerzity Erlangen – Norimberk (RRZE) v Německu. Ta také aktivně participuje na vývoji této sady nástrojů.

Benchmarky pro servery na Linuxu: výběr otevřených nástrojů
Foto — Clem Onojeghuo – Unsplash

perf-tools

Tento nástroj pro analýzu výkonu Linuxových serverů představil Brendan Gregg. Je jedním z vývojářů DTrace — frameworku pro dynamické sledování pro ladění aplikací v reálném čase.

Perf-tools se zakládá na subsystémech jádra perf_events a ftrace. Jejich utility umožňují analyzovat zpoždění vstupu/výstupu (iosnoop), sledovat argumenty systémových volání (unccount, funcslower, funcgraph a functrace) a shromažďovat statistiku „zásahů“ do souborové cache (cachestat). V posledním případě vypadá příkaz takto:

# ./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

Kolem nástroje se vytvořilo poměrně rozsáhlé společenství (téměř 6 tisíc hvězdiček na GitHubu). A existují společnosti, které aktivně používají perf-tools, například Netflix. Nástroj se stále zdokonaluje a modifikuje (i když v poslední době aktualizace vycházejí poměrně zřídka). Může tedy docházet k chybám ve jeho práci — autor uvádí, že někdy perf-tools vyvolává kernel panic.

llvm-mca

Nástroj, který predikuje, kolik výpočetních zdrojů bude strojový kód potřebovat na různých CPU. Ten estimates Instructions Per Cycle (IPC) a zátěž na hardware, kterou generuje to či ono aplikace.

llvm-mca byl představen v roce 2018 v rámci projektu LLVM, který se zabývá vývojem univerzálního systému analýzy, transformace a optimalizace programů. Je známo, že autoři llvm-mca se inspirovali řešením pro analýzu výkonnosti softwaru IACA od Intelu a snažili se vytvořit jeho alternativu. A podle slov uživatelů, výstupy nástroje (jejich formát a množství) skutečně připomínají IACA — příklad lze nalézt zde. Nicméně llvm-mca přijímá pouze AT&T-syntax, proto pro práci s ním budete pravděpodobně muset použít konvertory.

O čem píšeme na našich blozích a sociálních sítích:

Benchmarky pro servery na Linuxu: výběr otevřených nástrojů „Matematický model s Wall Street“ nebo jak optimalizovat náklady na cloud

Benchmarky pro servery na Linuxu: výběr otevřených nástrojů Jak zabezpečit Linuxový systém: 10 tipů
Benchmarky pro servery na Linuxu: výběr otevřených nástrojů Minimalizace rizik: jak neztratit své údaje

Benchmarky pro servery na Linuxu: výběr otevřených nástrojů Knihy pro ty, kteří se již věnují systémovému administrátorství nebo teprve plánují začít
Benchmarky pro servery na Linuxu: výběr otevřených nástrojů Výběr: pět knih a jeden kurz ze sítí

Benchmarky pro servery na Linuxu: výběr otevřených nástrojůNabízíme na 1cloud.ru bezplatnou službu „DNS-hosting“. Spravovat DNS záznamy u nás můžete v jednotném osobním účtu.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster