Benchmarks per i servitori Linux: una selezzione di strumenti aperti

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

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

Benchmarks per i servitori Linux: una selezzione di strumenti aperti
Фото - Lukas Blazek - Unsplash

temci

Это — инструмент для оценки времени выполнения двух программ. По сути, она позволяет сравнить время исполнения двух приложений. Автором утилиты выступил студент из Германии Йоханнес Бехбергер (Johannes Bechberger), который разработал ее в рамках бакалаврской выпускной работы в 2016 году. Сегодня инструмент distribuitu da по лицензии GNU General Public License.

Йоханнес хотел создать инструмент, который бы позволил измерять производительность вычислительной системы в контролируемом окружении. Поэтому одной из главных особенностей temci является возможность настроить тестовую среду. Например, : изменить настройки диспетчера управления частотой CPU, отключить iper threading и кэши L1 и L2, выключить турборежим на процессорах Intel и др. Для бенчмаркинга temci использует инструменты tempu, perf_stat и getrusage.

Вот так выглядит работа утилиты в первом случае:

# 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). С недавних пор он ведет свой блог A prestazione importa на GitHub Pages, в котором рассказывает об инструментах для бенчмаркинга и других связанных с ними вещах. В целом uarch-bench пока только начинает набирать популярность, но уже довольно часто mintuatu резидентами Hacker News в тематических тредах как go-to инструмент для бенчмаркинга.

Uarch-bench позволяет оценить производительность памяти, скорость параллельной загрузки данных и работу по очистке YMM-регистров. Как выглядят результаты бенчмаркинга, генерируемые программой, можно найти в официальном репозитории à u fondu di a pagina.

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

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

likwid

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

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

Инструментом пользуются инженеры, занимающиеся исследованиями в области HPC. Например, с likwid opere группа специалистов из Регионального вычислительного центра университета Эрлангена — Нюрмберга (RRZE) в Германии. Она же принимает активное участие в разработке этого набора инструментов.

Benchmarks per i servitori Linux: una selezzione di strumenti aperti
Фото - Clem Onojeghuo - Unsplash

perf-tools

Этот инструмент для анализа производительности Linux-серверов introduttu Брендан Грег (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. Она valuta Instructions Per Cycle (CPI) и нагрузку на аппаратное обеспечение, которую генерирует то или иное приложение.

llvm-mca представили в 2018 году в рамках проекта LLVM, который занимается разработкой универсальной системы анализа, трансформации и оптимизации программ. Известно, что авторы llvm-mca вдохновлялись решением для анализа производительности софта IACA от Intel и стремились создать его альтернативу. И по словам пользователей, выходные данные инструмента (их разметка и количество) действительно напоминают IACA — пример pò esse trovu quì. Однако llvm-mca воспринимает только AT&T-синтаксис, поэтому для работы с ним, скорее всего, придется использовать конвертеры.

Ciò chì scrivemu nantu à i nostri blog è e rete suciale:

Benchmarks per i servitori Linux: una selezzione di strumenti aperti «Мат. модель с Уолл-стрит» или как оптимизировать затраты на облако

Benchmarks per i servitori Linux: una selezzione di strumenti aperti Cumu assicurà u vostru sistema Linux: 10 cunsiglii
Benchmarks per i servitori Linux: una selezzione di strumenti aperti Minimizing risichi: cumu ùn perde i vostri dati

Benchmarks per i servitori Linux: una selezzione di strumenti aperti Libri per quelli chì sò digià implicati in l'amministrazione di u sistema o sò solu di pianificà per inizià
Benchmarks per i servitori Linux: una selezzione di strumenti aperti Подборка: пять книг и один курс по сетям

Benchmarks per i servitori Linux: una selezzione di strumenti apertiМы в 1cloud.ru предлагаем бесплатную услугу «DNS-хостинг». Управлять DNS-записями у нас можно в едином личном кабинете.

Source: www.habr.com

Add a comment