Проверка производительности дисковой системы в Linux (IOPS)

Для проверки производительности дисковой системы в Linux в терминах IOPS (операций ввода-вывода в секунду) обычно используют утилиту fio. Она позволяет запускать тесты с разными сценариями нагрузки и измерять количество операций ввода-вывода в секунду.[1][2]

Установите fio командой в зависимости от дистрибутива:

  • Debian/Ubuntu: apt-get install fio
  • RHEL/CentOS: yum install fio или dnf install fio

Случайное чтение:

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=8G --readwrite=randread

Случайная запись:

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=8G --readwrite=randwrite

Замените testfio на путь к вашему тестовому файлу или устройству (например, /dev/sda).

Ещё один пример:

fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=100m --bs=2300 --name=mytest  
  • –rw=write — тест выполняет последовательную запись (write) данных.
  • –ioengine=sync — используется синхронный ввод-вывод, то есть операции записи выполняются с системным вызовом write, без асинхронности.
  • –fdatasync=1 — после каждой операции записи вызывается fdatasync для принудительной записи данных на диск (синхронизация). Это гарантирует, что данные физически записаны на носитель.
  • –directory=test-data — тестовый файл создаётся и записывается в каталог test-data.
  • –size=100m — общий объём данных для записи - 100 мегабайт.
  • –bs=2300 — размер блока данных для каждой операции записи — 2300 байт (не стандартный блок, скорее всего, для специфической нагрузки).
  • –name=mytest — имя задания теста.

Для мониторинга текущих IOPS используйте:

  • iostat -dx 1 — статистика по устройствам с обновлением каждую секунду
  • iotop — интерактивный мониторинг процессов
  • dstat или sar — расширенная статистика

Пример:

iostat -dx 1

fio подходит для измерения максимальных значений IOPS при нагрузке, а iostat и подобные — для анализа текущей работы системы.[2][3][1]