Бенчмаркі для сервераў на Linux: падборка адчыненых прылад

Працягваем распавядаць аб прыладах для адзнакі прадукцыйнасці CPU на Linux-машынах. Сёння ў матэрыяле: temci, uarch-bench, likwid, perf-tools і llvm-mca.

Больш бенчмаркаў:

Бенчмаркі для сервераў на Linux: падборка адчыненых прылад
Фота Lukas Blazek - Unsplash

temci

Гэта - інструмент для ацэнкі часу выканання дзвюх праграм. Па сутнасці, яна дазваляе параўнаць час выканання двух дадаткаў. Аўтарам утыліты выступіў студэнт з Германіі Ёханэс Бехбергер (Johannes Bechberger), які распрацаваў яе ў рамках бакалаўрскай выпускной працы ў 2016 годзе. Сёння інструмент распаўсюджваецца па ліцэнзіі GNU General Public License.

Ёханэс хацеў стварыць інструмент, які б дазволіў вымяраць прадукцыйнасць вылічальнай сістэмы ў кантраляваным асяроддзі. Таму адной з галоўных асаблівасцяў temci з'яўляецца магчымасць наладзіць тэставае асяроддзе. Напрыклад, можна: змяніць налады дыспетчара кіравання частатой CPU, адключыць гіперпатокавасць і кэшы L1 і L2, выключыць турбарэжым на працэсарах Intel і інш. Для бенчмаркінгу temci выкарыстае прылады час, perf_stat и гэтрусаж.

Вось так выглядае праца ўтыліты ў першым выпадку:

# 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

Па выніках бенчмаркетынгу сістэма фармуе зручная справаздача са схемамі, табліцамі і графікамі, што адрознівае temci ад аналагічных рашэнняў.

З недахопаў temci вылучаецца яго "маладосць". Праз гэта ён падтрымлівае не ўсё канфігурацыі апаратнага і праграмнага забеспячэння. Напрыклад, яго складана запусціць пад macOS, а на сістэме з працэсарам ARM недаступныя некаторыя функцыі. У будучыні сітуацыя можа змяніцца, бо аўтар актыўна развівае праект, і колькасць зорак на GitHub паступова павялічваецца – не так даўно temci нават абмяркоўвалі ў каментарах на Hacker News.

uarch-bench

Утыліта для ацэнкі прадукцыйнасці нізкаўзроўневых функцый CPU, якую распрацаваў інжынер Трэвіс Даунс (Travis Downs). З нядаўніх часоў ён вядзе свой блог Прадукцыйнасць мае значэнне на GitHub Pages, у якім распавядае аб інструментах для бенчмаркетынгу і іншых звязаных з імі рэчах. У цэлым uarch-bench пакуль толькі пачынае набіраць папулярнасць, але ўжо даволі часта. згадваецца рэзідэнтамі Hacker News у тэматычных трэдах як go-to інструмент для бенчмаркетынгу.

Uarch-bench дазваляе ацаніць прадукцыйнасць памяці, хуткасць раўналежнай загрузкі дадзеных і працу па ачыстцы YMM-рэгістраў. Як выглядаюць вынікі бенчмаркетынгу, якія генерыруюцца праграмай, можна знайсці у афіцыйным рэпазітары унізе старонкі.

Варта адзначыць, што uarch-bench, як і temci, адключае функцыю Intel Turbo Boost (яна аўтаматычна павялічвае тактавую частату працэсара пад нагрузкай), каб вынікі тэсціравання былі кансістэнтнымі.

Пакуль што праект знаходзіцца на ранніх этапах распрацоўкі, таму ў uarch-bench няма падрабязнай дакументацыі, а ў яго працы могуць сустракацца багі - напрыклад, вядомыя складанасці з запускам на Ryzen. Таксама падтрымліваюцца толькі бенчмаркі для архітэктур x86. Аўтар абяцае дадаць больш функцыянальнасці ў будучыні і запрашае далучыцца да распрацоўкі.

likwid

Гэта – набор прылад для адзнакі прадукцыйнасці Linux-машын з працэсарамі Intel, AMD і ARMv8. Ён створаны пад эгідай Федэральнага міністэрства адукацыі і навуковых даследаванняў Германіі ў 2017 годзе і перададзены ў open source.

Сярод інструментаў likwid можна вылучыць likwid-powermeter, які выводзіць інфармацыю з RAPL-рэгістраў аб спажыванай сістэмай магутнасці, а таксама likwid-setFrequencies – дазваляе кантраляваць частату працэсара. Поўны спіс вы можаце знайсці ў рэпазітары.

Інструментам карыстаюцца інжынеры, якія займаюцца даследаваннямі ў вобласці HPC. Напрыклад, з likwid працуе група спецыялістаў з Рэгіянальнага вылічальнага цэнтра універсітэта Эрлангена - Нюрмберга (RRZE) у Германіі. Яна ж прымае актыўны ўдзел у распрацоўцы гэтага набору прылад.

Бенчмаркі для сервераў на Linux: падборка адчыненых прылад
Фота Клем Onojeghuo - Unsplash

perf-tools

Гэты інструмент для аналізу прадукцыйнасці Linux-сервераў. прадставіў Брэндан Грег (Brendan Gregg). Ён адзін з распрацоўшчыкаў DTrace - Фрэймворка дынамічнай трасіроўкі для адладкі прыкладанняў у рэальным часе.

У аснове perf-tools ляжаць падсістэмы ядра perf_events і ftrace. Іх утыліты дазваляюць прааналізаваць затрымку ўводу/высновы (iosnoop), адсачыць аргументы звароту да сістэмных выклікаў (unccount, funcslower, funcgraph і functrace) і сабраць статыстыку "трапленняў" у файлавы кэш (cachestat). У апошнім выпадку каманда выглядае вось так:

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

Вакол інструмента сфармавалася даволі шырокая супольнасць (амаль 6 тыс. зорак на GitHub). І ёсць кампаніі, якія актыўна выкарыстоўваюць perf-tools, напрыклад Netflix. Але прылада дапрацоўваецца і мадыфікуецца (хоць у апошні час абнаўленні выходзяць даволі рэдка). Таму ў яго працы могуць узнікаць памылкі - аўтар піша, што часам perf-tools выклікае kernel panic.

llvm-mca

Утыліта, якая прагназуе, колькі вылічальных рэсурсаў запатрабуецца машыннаму коду на розных CPU. Яна ацэньвае Instructions Per Cycle (IPC) і нагрузку на апаратнае забеспячэнне, якую генеруе тое ці іншае прыкладанне.

llvm-mca прадставілі ў 2018 годзе ў рамках праекта LLVM, Які займаецца распрацоўкай універсальнай сістэмы аналізу, трансфармацыі і аптымізацыі праграм. Вядома, што аўтары llvm-mca натхняліся рашэннем для аналізу прадукцыйнасці софту. IACA ад Intel і імкнуліся стварыць яго альтэрнатыву. І па словах карыстачоў, выходныя дадзеныя прылады (іх разметка і колькасць) сапраўды нагадваюць IACA – прыклад можна знайсці тут. Аднак llvm-mca успрымае толькі AT&T-сінтаксіс, таму для працы з ім, хутчэй за ўсё, давядзецца выкарыстоўваць канвертары.

Пра што мы пішам у нашых блогах і сацыяльных сетках:

Бенчмаркі для сервераў на Linux: падборка адчыненых прылад «Мат. мадэль з Уол-стрыт» ці як аптымізаваць выдаткі на воблака

Бенчмаркі для сервераў на Linux: падборка адчыненых прылад Як засцерагчы Linux-сістэму: 10 парад
Бенчмаркі для сервераў на Linux: падборка адчыненых прылад Мінімізацыя рызык: як не страціць вашыя дадзеныя

Бенчмаркі для сервераў на Linux: падборка адчыненых прылад Кнігі для тых, хто ўжо займаецца сістэмным адміністраваннем ці толькі плануе пачаць
Бенчмаркі для сервераў на Linux: падборка адчыненых прылад Падборка: пяць кніг і адзін курс па сетках

Бенчмаркі для сервераў на Linux: падборка адчыненых прыладМы ў 1cloud.ru прапануем бясплатную паслугу «DNS-хостынг». Кіраваць DNS-запісамі ў нас можна ў адзіным асабістым кабінеце.

Крыніца: habr.com

Дадаць каментар