Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов

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

wjuruvptsvmeg8nlmtfafuopiry.jpeg
Фото — Daniele Levis Pelusi — Unsplash


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.
Утилиту написал канадский разработчик Марк Лорд (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.
Это — набор бенчмарков для оценки производительности систем ввода/вывода. Авторами утилиты выступила команда разработчиков из группы AlgoDev, в которую входят сотрудники итальянского Университета Модены и Реджо-Эмилии.

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

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


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

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

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


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

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

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


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

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

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

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

© Habrahabr.ru