Проверка производительности дисковой системы в Linux (IOPS)
Для проверки производительности дисковой системы в Linux в терминах IOPS (операций ввода-вывода в секунду) обычно используют утилиту fio. Она позволяет запускать тесты с разными сценариями нагрузки и измерять количество операций ввода-вывода в секунду.[1][2]
Установка fio
Установите fio командой в зависимости от дистрибутива:
- Debian/Ubuntu: apt-get install fio
- RHEL/CentOS: yum install fio или dnf install fio
Тесты IOPS с 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 в реальном времени
Для мониторинга текущих IOPS используйте:
- iostat -dx 1 — статистика по устройствам с обновлением каждую секунду
- iotop — интерактивный мониторинг процессов
- dstat или sar — расширенная статистика
Пример:
iostat -dx 1
fio подходит для измерения максимальных значений IOPS при нагрузке, а iostat и подобные — для анализа текущей работы системы.[2][3][1]