Хабрахабр

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

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


Фото — Daniele Levis Pelusi — Unsplash

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

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

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

[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, в которую входят сотрудники итальянского Университета Модены и Реджо-Эмилии.

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

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


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

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

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

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

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

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

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

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

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

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть