ProHoster > Blog > podávání > Benchmarky pro servery Linux: výběr otevřených nástrojů
Benchmarky pro servery Linux: výběr otevřených nástrojů
Pokračujeme v mluvení o nástrojích pro hodnocení výkonu CPU na počítačích se systémem Linux. Dnes v materiálu: temci, uarch-bench, likwid, perf-tools a llvm-mca.
Jedná se o nástroj pro odhad doby provádění dvou programů. V podstatě vám umožňuje porovnat dobu provádění dvou aplikací. Autorem utility byl student z Německa Johannes Bechberger, který ji vyvinul v rámci své bakalářské práce v roce 2016. Dnešní nástroj distribuovány pod licencí GNU General Public License.
Johannes chtěl vytvořit nástroj, který by mu umožnil měřit výkon výpočetního systému v kontrolovaném prostředí. Proto je jednou z hlavních vlastností temci možnost nastavit testovací prostředí. Například, jeden může: změnit nastavení správce frekvence CPU, deaktivovat hyper závitování a L1 a L2 cache, vypněte turbo režim na procesorech Intel atd. Pro benchmarking používá temci nástroje čas, výkon_stat и getrusage.
Takto vypadá nástroj 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 generuje pohodlná zpráva s diagramy, tabulkami a grafy, což odlišuje temci od podobných řešení.
Mezi nedostatky temci vyniká jeho „mládí“. Kvůli tomu on ne vše je podporováno hardwarové a softwarové konfigurace. Například je obtížné spustit na macOS a některé funkce nejsou k dispozici v systému založeném na ARM. V budoucnu se situace může změnit, protože autor projekt aktivně rozvíjí a počet hvězdiček na GitHubu postupně přibývá - není to tak dávno temci dokonce diskutováno v komentářích na Hacker News.
Nástroj pro hodnocení výkonu nízkoúrovňových funkcí CPU, vyvinutý inženýrem Travisem Downsem (Travis Downs). V poslední době se věnuje blogování Záležitosti výkonu na GitHub Pages, kde se mluví o nástrojích pro benchmarking a dalších souvisejících věcech. Obecně platí, že uarch-bench teprve začíná získávat na popularitě, ale je to již zcela běžné zmínil obyvatelé Hacker News v tematických vláknech jako nástroj pro srovnávání.
Uarch-bench umožňuje vyhodnotit výkon paměti, rychlost paralelního načítání dat a čištění Registry YMM. Jak vypadají výsledky benchmarkingu generované programem lze nalézt v oficiálním úložišti ve spodní části stránky.
Stojí za zmínku, že uarch-lavička, jako temci, odpojí Funkce Intel Turbo Boost (automaticky zvyšuje takt procesoru při zatížení), aby byly výsledky testu konzistentní.
Projekt je zatím v rané fázi vývoje, takže uarch-bench nemá podrobnou dokumentaci a jeho provoz může obsahovat chyby – např. obtíže jsou známy se spuštěním na Ryzenu. Podporovány jsou také pouze benchmarky pro architektury x86. Autor slibuje, že v budoucnu přidá další funkce a zve vás, abyste se připojili k vývoji.
Jedná se o sadu nástrojů pro hodnocení výkonu linuxových strojů s procesory Intel, AMD a ARMv8. Byl vytvořen pod záštitou německého spolkového ministerstva školství a výzkumu v roce 2017 a uvolněn do open source.
Z nástrojů likwid můžeme vyzdvihnout likwid-powermeter, který zobrazuje informace z registrů RAPL o spotřebě energie systémem, a také likwid-setFrequencies, který umožňuje řídit frekvenci procesoru. Můžete vidět kompletní seznam najít v úložišti.
Tento nástroj používají inženýři zabývající se výzkumem HPC. Například s likwid práce skupina specialistů z Regionálního výpočetního centra Univerzity Erlangen-Norimberk (RRZE) v Německu. Také se aktivně podílí na vývoji této sady nástrojů.
Tento nástroj pro analýzu výkonu serverů Linux představen Brendan Gregg. Je jedním z vývojářů DTrace — dynamický sledovací rámec pro ladění aplikací v reálném čase.
perf-tools je založen na subsystémech jádra perf_events a ftrace. Jejich nástroje vám umožňují analyzovat I/O latenci (iosnoop), sledovat argumenty systémových volání (unccount, funcslower, funcgraph a functrace) a shromažďovat statistiky o „zásahech“ v mezipaměti souborů (cachestat). V druhém případě příkaz vypadá takto:
Kolem nástroje se vytvořila poměrně velká komunita (téměř 6 tisíc hvězd na GitHubu). A jsou firmy, které aktivně využívají například perf-tools Netflix. Nástroj je ale dále vyvíjen a upravován (ačkoli aktualizace jsou v poslední době vydávány poměrně zřídka). Proto se při jeho provozu mohou vyskytnout chyby – autor píše, že někdy perf-tools vyvolává v jádře paniku.
Nástroj, který předpovídá, kolik výpočetních zdrojů bude strojový kód vyžadovat na různých CPU. Ona hodnotí Pokyny pro každý cyklus (IPC) a zatížení hardwaru, které konkrétní aplikace generuje.
llvm-mca byl představen v roce 2018 jako součást projektu LLVM, která vyvíjí univerzální systém pro analýzu, transformaci a optimalizaci programů. Je známo, že autoři llvm-mca se inspirovali řešením pro analýzu výkonu softwaru IACA od Intelu a snažil se vytvořit alternativu. A podle uživatelů se výstup nástroje (jejich uspořádání a množství) opravdu podobá IACA - příklad najdete zde. llvm-mca však pouze přijímá Syntaxe AT&T, takže s největší pravděpodobností budete muset pro práci s ním používat převodníky.
O čem píšeme na našich blozích a sociálních sítích: