Мы в 1cloud.ru подготовили подборку инструментов и скриптов для оценки производительности процессоров, СХД и памяти на Linux-машинах: Iometer, DD, vpsbench, HammerDB и 7-Zip.

Другие наши подборки с бенчмарками:



Фото — 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:

$ bash <(wget --no-check-certificate -O - https://raw.github.com/mgutz/vpsbench/master/vpsbench)

CPU model:  Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
Number of cores: 4
CPU frequency:  3417.879 MHz
Total amount of RAM: 3265 MB
Total amount of swap: 1021 MB
System uptime:   8:41,
I/O speed:  427 MB/s
Bzip 25MB: 4.66s
Download 100MB file: 1.64MB/s

Утилита отображает количество ядер, частоту процессора, объемы задействованной памяти. Для оценки производительности дисков 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



7-Zip


Этот архиватор имеет встроенный бенчмарк для тестирования скорости процессоров при сжатии определенного количества файлов. Также он подойдет для проверки RAM на ошибки. Для тестов используется алгоритм LZMA (Lempel–Ziv–Markov chain Algorithm). Он основан на схеме сжатия данных по словарю. Например, чтобы запустить бенчмарк с одним потоком и 64-мегабайтным словарем достаточно прописать команду:

7z b -mmt1 -md26

Результат программа предоставит в формате MIPS (million instructions per second), что можно назвать недостатком. Этот параметр подходит для сравнения быстродействия процессоров одинаковой архитектуры, но в случае с различающимися архитектурами его применимость ограничена.



DD


Инструмент командной строки, конвертирующий и копирующий файлы. Но его можно использовать для проведения простых I/O-тестов на СХД. Из коробки запускается практически на любой системе GNU/Linux.

На wiki-страничке приведена команда для оценки производительности диска при последовательной записи 1024-байтных блоков:

dd if=/dev/zero bs=1024 count=1000000 of=file_1GB
dd if=file_1GB of=/dev/null bs=1024

Также стоит отметить, что DD можно использовать в качестве простого CPU-бенчмарка. Правда, для этого понадобится дополнительная программа, требующая ресурсоемких вычислений. Например, утилита для расчета значений хеш-сумм md5sum.

dd if=/dev/zero bs=1M count=1024 | md5sum

Команда выше покажет, насколько быстро (Мбайт/с) система обработает длинную числовую последовательность. Хотя эксперты говорят, что эта команда подойдет лишь для грубой оценки производительности. Также важно помнить, что DD позволяет производить низкоуровневые операции на жёстких дисках. Поэтому работать с утилитой нужно осторожно, чтобы не потерять часть данных (название DD иногда в шутку расшифровывают, как disk destroyer).



О чем мы пишем в наших блогах и социальных сетях:

Исследование: Linux — все еще самая популярная ОС в облаке
В Open Invention Network больше трех тысяч лицензиатов — что это значит для открытого ПО

Как обезопасить Linux-систему: 10 советов
Минимизация рисков: как не потерять ваши данные

Книги для тех, кто уже занимается системным администрированием или только планирует начать
Необычные доменные зоны для вашего проекта

Комментарии (7)


  1. dormin
    06.08.2019 22:32

    Немного странно, но полно более новых скриптов для оценки работы VPS.
    wget -qO- bench.sh | bash Выдает параметры компьютера и скорости до нескольких серверов
    или curl -Lso- bench.sh | bash
    wget -qO- wget.racing/nench.sh | bash Тест процессора и IO и скорости до нескольких серверов
    Еще один скрипт github.com/hidden-refuge/bench-sh-2


  1. Tangeman
    06.08.2019 23:16
    +1

    dd в приведенном варианте использования измерит скорость памяти в сочетании с кэшем OS, а не самого диска (по крайней мере, если оперативки больше чем 1G). К тому же, размер блока в 1K даст весьма заниженные результаты. Лучше будет так:

    dd if=/dev/zero bs=1M count=1024 oflag=direct of=file_1GB
    dd iflag=direct if=file_1GB of=/dev/null bs=1M

    Для оценки производительности накопителей ещё есть полезная утилита ioping — с её помощью можно легко померять много чего (время позиционирования, доступа с разным размеров блоков etc).


  1. sasah
    07.08.2019 00:20

    Прошу прощения, а что там с маникюром?


  1. oller
    07.08.2019 01:13

    в одном из тг каналов, посвященном хранению данных, сказали что тестить скорость хранения нужно fio, vdbench


    1. postdig
      07.08.2019 12:08

      про fio и почему не iozone/iometer:
      Как правильно мерять производительность диска
      habr.com/ru/post/154235

      А для системы вцeлом — использую github.com/kdlucas/byte-unixbench


  1. Aleho
    07.08.2019 11:02

    Вместо «разрушителя дисков» который, как уже заметили в коментах в таком варианте измеряет скорее скорость работы буфера и кэша, лучше использовать другие инструменты, iozone можно упомянуть. Ну а если тестирование сервера — то можно добавить инструментов для измерения сетевой пропускной способности, iperf3 например.


  1. dvrpd
    08.08.2019 12:11

    bash <(wget --no-check-certificate -O — raw.github.com/mgutz/vpsbench/master/vpsbench)
    Пайпинг в баш, да ещё и с игнорированием ошибок сертификата. Мне больно.