В прошлый раз мы рассказывали об инструментах с отрытым исходным кодом для оценки производительности процессоров и памяти. Сегодня говорим о бенчмарках для файловых систем и систем хранения данных на Linux — Interbench, Fio, Hdparm, S и Bonnie.


Фото — Daniele Levis Pelusi — Unsplash



Fio


Fio (расшифровывается как Flexible I/O Tester) создает потоки ввода/вывода данных с диска, чтобы оценить производительность файловой системы Linux. Утилиту можно запустить и на Windows — нужно установить интерфейс командной строки Cygwin. Руководство по настройке есть в репозитории fio на GitHub.

Автор fio — Йенс Аксбо (Jens Axboe), ответственный за подсистему IO в Linux и разработчик утилиты blktrace для трассировки операций ввода/вывода. Он создал fio, потому что устал писать программы для тестирования специфической нагрузки вручную.

Утилита посчитает IOPS и пропускную способность системы, а также позволит оценить глубину очереди операций ввода/вывода. Утилита работает со специальными файлами (расширение .fio), в которых прописываются настройки и условия теста. Вариантов тестов несколько, например, есть произвольная запись, чтение и перезапись. Вот пример содержимого файла для первого случая:

[global]
	name=fio-rand-read
	filename=fio-rand-read
	rw=randread
	bs=4K
	direct=0
	numjobs=1
	time_based=1
	runtime=900

Сегодня fio используется крупными компаниями — с утилитой работают в SUSE, Nutanix и IBM.



Hdparm


Утилиту написал канадский разработчик Марк Лорд (Mark Lord) в далеком 2005 году. Она до сих пор поддерживается автором и является частью многих популярных дистрибутивов. Главное назначение hdparm — настройка параметров накопителей. Но инструмент можно использовать для проведения простых бенчмарков, например, измерения скорости чтения. Для этого нужно написать в консоли команду:

$ sudo hdparm -t /dev/sdb

Система сформирует подобный ответ:

Timing buffered disk reads: 242 MB in 3.01 seconds = 80.30 MB/sec

Что касается настройки накопителей, то hdparm позволяет менять объем кеш-памяти, модифицировать параметры спящего режима и электропитания, а также безопасно стирать данные на SSD. Но, как предупреждают специалисты из ArchLinux, неосторожное изменение системных параметров может сделать данные на диске недоступными и даже повредить накопитель. Перед работой с hdparm лучше ознакомиться с руководством — достаточно прописать в консоли команду man hdparm.



S


Это — набор бенчмарков для оценки производительности систем ввода/вывода. Авторами утилиты выступила команда разработчиков из группы AlgoDev, в которую входят сотрудники итальянского Университета Модены и Реджо-Эмилии.

Все бенчмарки представляют собой bash-скрипты, оценивающие производительность системы хранения данных — пропускную способность, латентность, работу планировщиков. К примеру, бенчмарк throughput-sync.sh «бомбардирует» СХД запросами на чтение или запись (в этом случае используется уже упомянутая утилита fio). Вот код этого скрипта.

Другой скрипт — comm_startup_lat.sh — измеряет задержку чтения данных с диска при «холодном кэше» (когда в нем нет необходимых данных). Код также можно найти в репозитории.




Фото — Age Barros — Unsplash



Bonnie


Утилита для оценки производительности файловой системы, разработанная в 1989 году. Её автором выступил инженер Тим Брей (Tim Bray). С помощью Bonnie он планировал оптимизировать работу вычислительных систем, задействованных в проекте New Oxford English Dictionary в Университете Ватерлоо.

Bonnie выполняет произвольное чтение и запись данных на диск. После утилита показывает такие параметры, как число обработанных байтов за CPU-секунду, а также уровень загрузки процессора в процентах. Исходный код бенчмарка можно найти на Google Code.

На основе Bonnie построен другой комплекс инструментов для тестирования жесткого диска — Bonnie++ (написан на C++, вместо C). В нем приведены дополнительные бенчмарк-инструменты. Например, zcav для оценки производительности различных зон HDD. Также Bonnie++ подходит для тестирования почтовых серверов и серверов баз данных.



Interbench


Утилиту разработал Кон Коливас (Con Kolivas), австралийский анестезиолог, который известен своим вкладом в разработку ядра Linux и работой над «справедливым планировщиком процессора». Interbench помогает настроить параметры планировщика ввода/вывода и файловой системы.

Interbench эмулирует поведение планировщика CPU при выполнении интерактивных задач. Этими интерактивными задачами могут выступать работа со звуком и видео, запуск компьютерных игр или простое перетаскивание диалогового окна в операционной системе.

Исходный код, примеры и рекомендации по настройке инструмента можно найти в официальном репозитории на GitHub.



О чем мы пишем в наших блогах:

Бенчмарки для Linux-серверов: 5 открытых инструментов

Резервное копирование файлов: как подстраховаться от потери данных
Как перенести системный жесткий диск в виртуальную машину?
Тренировочный стенд для админов: чем поможет облако

Досмотры гаджетов на границе: как действовать, чтобы не потерять конфиденциальные данные?
Снэпшоты: зачем нужны «снимки»

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


  1. thatsme
    30.06.2019 17:34

    А ещё естъ Oracle-овый VDBench. Хотя мне fio больше нравится, VDBench имеет возможность выполнять задачи ввода/вывода в параллельных потоках. Кол-во параллельных потоков также параметризуется. Для очень быстрых СХД, это необходимый перк.


  1. gecube
    01.07.2019 00:29
    +1

    Не рассказали, как использоваться dd, если совсем нет других утилит (тоже можно использовать для бенчмарка).
    А еще была такая классная утилита как http://www.iometer.org/ Ею меряли скорость RAID-массивов. И можно было ее встретить в результатах статей на iXBT, Ferra и других онлайн-изданий. Странно, но вроде последний релиз был в 2014 — интересно — она уже умерла? Или все-таки дальше ее развивают?