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


Фото — Daniele Levis Pelusi — Unsplash



Fio


Это — инструмент для генерации потоков чтения/записи с диска. Он позволяет оценить производительность файловой системы Linux, например, просмотреть скорость в Мбайт/с и IOPS. К слову, fio можно запустить и на Windows, но придется установить интерфейс командной строки Cygwin — инструкция есть в репозитории на GitHub. Автор fio — Дженс Эксбо (Jens Axboe), мэйнтейнер подсистемы блочных устройств Linux.

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

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

Затем этот файл достаточно передать утилите в качестве параметра.

Тот факт, что для запуска fio нужно формировать отдельный файл, считается его главным недостатком. Плюс бывает сложно разобраться в генерируемых утилитой результатах. Но несмотря на это fio пользуется довольно большое число разработчиков. Например, с утилитой работают в IBM, SUSE и Nutanix.



Hdparm


Стандартная утилита для настройки параметров дисков с интерфейсом ATA и проведения простейших бенчмарков. Например, с её помощью можно быстро узнать скорость чтения диска. Hdparm входит в состав подавляющего большинства дистрибутивов.

Для проверки скорости чтения достаточно написать в консоли следующую команду:

$ sudo hdparm -Tt /dev/sda

Ниже, пример ответа, генерируемого системой:

Timing cached reads: 5278 MB in 2.00 seconds = 2639.99 MB/sec
Timing buffered disk reads: 234 MB in 3.00 seconds = 77.90 MB/sec

Что касается функциональности с настройкой накопителей, то она позволяет изменить объём кеш-памяти, параметры спящего режима и электропитания — всего их около шестидесяти.

Однако неосторожное изменение ряда системных параметров может привести к потере данных на диске. Поэтому перед работой с hdparm стоит ознакомиться с руководством — достаточно прописать в консоли команду man hdparm.



S


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

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




Фото — Age Barros — Unsplash



Bonnie


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

Bonnie выполняет посимвольную или поблочную запись данных в файлы на диске (стандартный размер 100 МБ), а также произвольное чтение этой информации. Для каждого теста Bonnie выводит число обработанных байтов за CPU-секунду, а также уровень загрузки процессора в процентах. Исходный код бенчмарка можно найти на Google Code.

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



Interbench


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

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

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



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

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

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

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

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


  1. amarao
    27.06.2019 16:14

    Тот факт, что для запуска fio нужно формировать отдельный файл, считается его главным недостатком.


    Да что вы говорите?


    fio --name `hostname` --blocksize=4k --ioengine=rbd --iodepth=1 --size 1G --direct=1 --buffered=0 --rw=randread  --pool=bench --            rbdname=bench

    И где тут файл? Учитесь читать man-страницы, очень помогает.


    … Интересно, квалификация разработчиков "1Cloud" такая же, как у автора этого поста, или копирайтеры отдельно, а технари отдельно?