- Бенчмарки для серверов на Linux: подборка открытых инструментов
- temci
- uarch-bench
- likwid
- perf-tools
- llvm-mca
- Как оценить производительность Linux-сервера: открытые инструменты для бенчмаркинга
- Iometer
- vpsbench
- HammerDB
- Бенчмарки для Linux-серверов: 5 открытых инструментов
- Sysbench
- UnixBench
- Phoronix Test Suite
- Vdbench
- IOzone
Бенчмарки для серверов на Linux: подборка открытых инструментов
Продолжаем рассказывать об инструментах для оценки производительности CPU на Linux-машинах. Сегодня в материале: temci, uarch-bench, likwid, perf-tools и llvm-mca.
- Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone
- Interbench, Fio, Hdparm, S и Bonnie
- Iometer, DD, vpsbench, HammerDB и 7-Zip
Фото — Lukas Blazek — Unsplash
temci
Это — инструмент для оценки времени выполнения двух программ. По сути, она позволяет сравнить время исполнения двух приложений. Автором утилиты выступил студент из Германии Йоханнес Бехбергер (Johannes Bechberger), который разработал ее в рамках бакалаврской выпускной работы в 2016 году. Сегодня инструмент распространяется по лицензии GNU General Public License.
Йоханнес хотел создать инструмент, который бы позволил измерять производительность вычислительной системы в контролируемом окружении. Поэтому одной из главных особенностей temci является возможность настроить тестовую среду. Например, можно: изменить настройки диспетчера управления частотой CPU, отключить hyper-threading и кэши L1 и L2, выключить турборежим на процессорах Intel и др. Для бенчмаркинга temci использует инструменты time, perf_stat и getrusage.
Вот так выглядит работа утилиты в первом случае:
По результатам бенчмаркинга система формирует удобный отчет со схемами, таблицами и графиками, что отличает temci от аналогичных решений.
Из недостатков temci выделяется его «молодость». Из-за этого он поддерживает не все конфигурации аппаратного и программного обеспечения. Например, его сложно запустить под macOS, а на системе с процессором ARM недоступны некоторые функции. В будущем ситуация может измениться, так как автор активно развивает проект, и количество звезд на GitHub постепенно увеличивается — не так давно temci даже обсуждали в комментариях на Hacker News.
uarch-bench
Утилита для оценки производительности низкоуровневых функций CPU, которую разработал инженер Тревис Даунс (Travis Downs). С недавних пор он ведет свой блог Performance Matters на 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) в Германии. Она же принимает активное участие в разработке этого набора инструментов.
Фото — Clem Onojeghuo — Unsplash
perf-tools
Этот инструмент для анализа производительности Linux-серверов представил Брендан Грег (Brendan Gregg). Он один из разработчиков DTrace — фреймворка динамической трассировки для отладки приложений в реальном времени.
В основе perf-tools лежат подсистемы ядра perf_events и ftrace. Их утилиты позволяют проанализировать задержку ввода/вывода (iosnoop), отследить аргументы обращения к системным вызовам (unccount, funcslower, funcgraph и functrace) и собрать статистику «попаданий» в файловый кэш (cachestat). В последнем случае команда выглядит вот так:
Вокруг инструмента сформировалось довольно обширное сообщество (почти 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-систему: 10 советов
Минимизация рисков: как не потерять ваши данные
Книги для тех, кто уже занимается системным администрированием или только планирует начать
Подборка: пять книг и один курс по сетям
Мы в 1cloud.ru предлагаем бесплатную услугу «DNS-хостинг». Управлять DNS-записями у нас можно в едином личном кабинете.
Источник
Как оценить производительность Linux-сервера: открытые инструменты для бенчмаркинга
Мы в 1cloud.ru подготовили подборку инструментов и скриптов для оценки производительности процессоров, СХД и памяти на Linux-машинах: Iometer, DD, vpsbench, HammerDB и 7-Zip.
Другие наши подборки с бенчмарками:
- Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone
- Interbench, Fio, Hdparm, S и Bonnie
Фото — Bureau of Land Management Alaska — CC BY
Iometer
Это — бенчмарк для оценки производительности дисковой и сетевой подсистем. Подходит для работы как с одним сервером, так и целым кластером. Iometer представили инженеры Intel в 1998 году. В 2001-м корпорация передала исходники некоммерческой организации Open Source Development Labs (OSDL) по лицензии Intel Open Source License. С 2003 года поддержкой инструмента занимается группа энтузиастов — проект зарегистрирован на SourceForge.net.
Iometer состоит из генератора нагрузки dynamo и графического интерфейса. Правда, последний доступен только под Windows. Что касается генератора, то он позволяет имитировать нагрузку сторонних приложений — для этого создаются специальные тестовые шаблоны.
Бенчмарки показывают: пропускную способность, операции в секунду, латентность и загрузку процессора. Вычисляются не только средние значения величин, но и мин/макс.
Несмотря на то что последняя стабильная версия инструмента вышла в 2014 году, его до сих пор используют в Broadcom и Dell. Однако возраст системы все же сказывается. Во-первых, её интерфейс устарел и не менялся с 1998 года. Во-вторых, инструмент порой выводит не совсем адекватные результаты на массивах all-flash.
vpsbench
Простой скрипт для оценки производительности VPS. Распространяется по лицензии MIT. Вот пример его работы, приведенный в официальном репозитории на GitHub:
Утилита отображает количество ядер, частоту процессора, объемы задействованной памяти. Для оценки производительности дисков vpsbench выполняет последовательное и произвольное чтение/запись. Несмотря на то что утилита довольно старая (обновление на GitHub сделано около четырех лет назад) ее использует множество облачных провайдеров и ИТ-компаний.
HammerDB
Один из самых популярных открытых бенчмарков для нагрузочного тестирования баз данных. Поддержкой инструмента занимается некоммерческая организация TPC — Transaction Processing Performance Council. Её цель — разработка стандартов для БД-бенчмарков.
HammerDB создает тестовую схему БД, наполняет её данными и симулирует нагрузку нескольких виртуальных пользователей. Нагрузкой могут служить как транзакционные, так и аналитические операции. Поддерживает: Oracle Database, SQL Server, IBM Db2, MySQL, MariaDB, PostgreSQL и Redis.
Вокруг HammerDB сформировалось обширное комьюнити. Утилиту используют компании из 180 стран мира. Среди них: Intel, Dell, Lenovo, Red Hat и многие другие. Если вы хотите изучить возможности утилиты самостоятельно — можете начать с официальных гайдов.
Фото — lost places — CC BY
Этот архиватор имеет встроенный бенчмарк для тестирования скорости процессоров при сжатии определенного количества файлов. Также он подойдет для проверки RAM на ошибки. Для тестов используется алгоритм LZMA (Lempel–Ziv–Markov chain Algorithm). Он основан на схеме сжатия данных по словарю. Например, чтобы запустить бенчмарк с одним потоком и 64-мегабайтным словарем достаточно прописать команду:
Результат программа предоставит в формате MIPS (million instructions per second), что можно назвать недостатком. Этот параметр подходит для сравнения быстродействия процессоров одинаковой архитектуры, но в случае с различающимися архитектурами его применимость ограничена.
Инструмент командной строки, конвертирующий и копирующий файлы. Но его можно использовать для проведения простых I/O-тестов на СХД. Из коробки запускается практически на любой системе GNU/Linux.
На wiki-страничке приведена команда для оценки производительности диска при последовательной записи 1024-байтных блоков:
Также стоит отметить, что DD можно использовать в качестве простого CPU-бенчмарка. Правда, для этого понадобится дополнительная программа, требующая ресурсоемких вычислений. Например, утилита для расчета значений хеш-сумм md5sum.
Команда выше покажет, насколько быстро (Мбайт/с) система обработает длинную числовую последовательность. Хотя эксперты говорят, что эта команда подойдет лишь для грубой оценки производительности. Также важно помнить, что DD позволяет производить низкоуровневые операции на жёстких дисках. Поэтому работать с утилитой нужно осторожно, чтобы не потерять часть данных (название DD иногда в шутку расшифровывают, как disk destroyer).
О чем мы пишем в наших блогах и социальных сетях:
Исследование: Linux — все еще самая популярная ОС в облаке
В Open Invention Network больше трех тысяч лицензиатов — что это значит для открытого ПО
Как обезопасить Linux-систему: 10 советов
Минимизация рисков: как не потерять ваши данные
Книги для тех, кто уже занимается системным администрированием или только планирует начать
Необычные доменные зоны для вашего проекта
Источник
Бенчмарки для Linux-серверов: 5 открытых инструментов
Сегодня мы расскажем об открытых инструментах для оценки производительности процессоров, памяти, файловых систем и систем хранения данных.
В список вошли утилиты, предлагаемые резидентами GitHub и участниками тематических тредов на Reddit, — Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone.
/ Unsplash / Veri Ivanova
Sysbench
Это — утилита для нагрузочного тестирования MySQL-серверов, основанная на проекте LuaJIT, в рамках которого разрабатывается виртуальная машина для языка Lua. Автор инструмента — программист и эксперт по MySQL Алексей Копытов. Проект начинался как хобби, но со временем обрел признание сообщества. Сегодня sysbench используют в своей работе крупные университеты и ИТ-организации вроде IEEE.
Во время конференции SECR-2017 (запись выступления есть на YouTube) Алексей рассказал, что sysbench позволяет оценить производительность базы данных при переносе на новое оборудование, обновлении версии СУБД или резком изменении числа запросов. В общем случае синтаксис команды для проведения теста выглядит следующим образом:
Эта команда определяет тип (cpu, memory, fileio) и параметры нагрузочного теста (количество потоков, число запросов, скорость обработки транзакций). В целом инструмент способен обрабатывать миллионы событий за секунду. Подробнее об архитектуре и внутреннем устройстве sysbench Алексей Копытов рассказал в одном из выпусков подкаста Software Development Podcast.
UnixBench
Набор инструментов для оценки производительности Unix-систем. Его представили инженеры из университета Монаша в 1983 году. С того момента поддержкой инструмента занималось множество людей, например, авторы журнала о микрокомпьютерных технологиях Byte Magazine и участник LKML Дэвид Ниеми (David Niemi). За выход следующей версии инструмента отвечает Энтони Воэлм (Anthony Voellm) из Microsoft.
UnixBench представляет собой набор индивидуальных тестов. Они сопоставляют скорость выполнения кода на машине под управлением Unix с производительностью эталонной системы, в роли которой выступает SPARCstation 20-61. На основе этого сравнения генерируется балл, определяющий производительность.
Среди доступных тестов числятся: Whetstone, который описывает эффективность операций с плавающей точкой, File Copy, оценивающий скорость копирования данных, и несколько 2D и 3D-бенчмарков. Полный список тестов можно найти в репозитории на GitHub. Многие из них используют для оценки производительность виртуальных машин в облаке.
Phoronix Test Suite
Этот комплекс тестов разработан авторами веб-ресурса Phoronix, на котором публикуются новости о дистрибутивах GNU/Linux. Впервые Test Suite представили в 2008 году — тогда он включал 23 различных теста. Позже разработчики запустили облачный сервис OpenBenchmarking.org, на котором пользователи могли публиковать собственные тестовые сценарии. Сегодня на нем представлено около 60 бенчмарк-наборов, в том числе связанных с машинным обучением и технологией ray-tracing.
Наборы специализированных скриптов позволяют протестировать отдельные компоненты системы. С их помощью можно оценить время компиляции ядра и кодирования видеофайлов, скорость сжатия архиваторов и др. Для запуска тестов достаточно написать соответствующую команду в консоли. Например, эта команда инициирует оценку производительности CPU:
Во время тестирования Test Suite самостоятельно контролирует состояние оборудования (температуру CPU и скорость вращения кулеров), защищая систему от перегрева.
/ Unsplash / Jason Chen
Vdbench
Инструмент для генерации I/O-нагрузки на дисковые системы, разработанный Oracle. Он помогает оценить производительность и целостность СХД (о том, как посчитать теоретическую производительность дисковой системы, мы подготовили краткую справку).
Работает решение следующим образом: на реальной системе запускается программа SWAT (Sun StorageTek Workload Analysis Tool), которая создает дамп со всеми обращениями к диску за определённый период. Записываются метка времени, тип операции, адрес и размер блока данных. Далее, используя файл с дампом, vdbench эмулирует нагрузку на любой другой системе.
Список параметров для управления утилитой есть в официальном документе Oracle. Исходный код утилиты можно найти на сайте компании.
IOzone
Консольная утилита для оценки производительности файловых систем. Она определяет скорость чтения, записи и перезаписи файлов. В разработке инструмента приняли участие десятки программистов, но автором его первой версии считается инженер Уильям Норкотт (William Norcott). Разработку поддержали такие компании, как Apple, NetApp и iXsystems.
Для управления потоками и их синхронизации во время тестирования инструмент использует стандарт POSIX Threads. По завершении работы IOzone выдает отчет с результатами или в текстовом формате, или в виде электронной таблицы (Excel). Также инструмент имеет в составе скрипт gengnuplot.sh, который строит по данным таблиц трехмерный график. Примеры таких графиков можно найти в документации к инструменту (стр. 11–17).
IOzone доступен в качестве тестового профайла в уже упомянутом Phoronix Test Suite.
Дополнительное чтение из наших блогов и социальных сетей:
Баг в Linux 5.1 приводил к потере данных — корректирующий патч уже вышел
Есть мнение: технология DANE для браузеров провалилась
Зачем нужен мониторинг?
Резервное копирование файлов: как подстраховаться от потери данных
Как перенести системный жесткий диск в виртуальную машину?
Все говорят об утечках ПД — чем поможет IaaS-провайдер
Короткий ликбез: как устроена ЭЦП
Справочная: как работает закон о персональных данных
Источник