Добавить в корзинуПозвонить
Найти в Дзене

fio в Linux — измеряем производительность диска

Для замера производительности дисковой системы в Linux есть замечательная утилита fio (Flexible I/O tester). Утилита позволяет использовать для тестирования заранее написанные файл-тесты, в которых указывается что именно мы хотим измерить. К примеру, можно провести тест на производительность при последовательном и случайном чтении/записи на диск. Установка fio Ubuntu: apt-get install fio CentOS: yum install fio Измеряем производительность NVMe диска с помощью fio Есть сервер Dell PowerEdge R640 с NVMe дисками SSD Dell EMC NVMe 3.84 TB — KCD5XLUG3T84. В спецификации указаны следующие параметры производительности для данной модели NVMe диска: Загружаю на сервере Dell Support Live Image с операционной системой CentOS. Работаю в терминале под рутом. Устанавливаю репозиторий EPEL: yum install epel-release -y Устанавливаю fio: yum install fio -y Создаю файл-тест с конфигурацией тестирования, назову его srcmvme0n1: [global]
ioengine=libaio
iodepth=64
direct=1
numjobs=4
filesize=100g
size=160g
Оглавление

Для замера производительности дисковой системы в Linux есть замечательная утилита fio (Flexible I/O tester). Утилита позволяет использовать для тестирования заранее написанные файл-тесты, в которых указывается что именно мы хотим измерить.

К примеру, можно провести тест на производительность при последовательном и случайном чтении/записи на диск.

Установка fio

Ubuntu:

apt-get install fio

CentOS:

yum install fio

Измеряем производительность NVMe диска с помощью fio

Есть сервер Dell PowerEdge R640 с NVMe дисками SSD Dell EMC NVMe 3.84 TB — KCD5XLUG3T84. В спецификации указаны следующие параметры производительности для данной модели NVMe диска:

  • Последовательное чтение: 3140 MBPS
  • Последовательная запись: 1520 MBPS
  • Случайное чтение: 465000 IOPS
  • Случайная запись: 40000 IOPS

Загружаю на сервере Dell Support Live Image с операционной системой CentOS. Работаю в терминале под рутом. Устанавливаю репозиторий EPEL:

yum install epel-release -y
-2

Устанавливаю fio:

yum install fio -y
-3

Создаю файл-тест с конфигурацией тестирования, назову его srcmvme0n1:

[global]
ioengine=libaio
iodepth=64
direct=1
numjobs=4
filesize=100g
size=160g
norandommap
group_reporting

# Two RANDOM 4k tests, READ and WRITE
[random_read_4k]
rw=randread
blocksize=4k
filename=/dev/md127
stonewall

[random_write_4k]
rw=randwrite
blocksize=4k
filename=/dev/md127
stonewall

# Two SEQUENTIAL 512k tests, READ and WRITE
[seq_read_512k]
rw=read blocksize=512k
filename=/dev/md127
stonewall

[seq_write_512k]
rw=write
blocksize=512k
filename=/dev/md127
stonewall

Будем проводить четыре теста:

  • Случайное чтение блоками 4k
  • Случайная запись блоками 4k
  • Последовательное чтение блоками 512k
  • Последовательная запись блоками 512k
-4

Запуск теста:

fio srcmvme0n1

Процедура тестирования может занять продолжительное время.

-5

Сравню полученные результаты с заявленными в спецификации (в скобках).

  • Последовательное чтение: 2518 (3140) MBPS
  • Последовательная запись: 1583 (1520) MBPS
  • Случайное чтение: 342000 (465000) IOPS
  • Случайная запись: 278000 (40000) IOPS

Чтение чуть меньше заявленного, а запись быстрее. Здесь, скорее всего, сыграло свою роль кэширование и недостаточно большой срок тестирования.

Заключение

Результат моего тестирования не выявил явных проблем с производительностью выбранного NVMe диска. Результаты отличались от заявленных производителем, но следует учесть, что тестируемый диск не новый, тест недолгий, задействован кэш.

Я не самый большой специалист в тестировании дисков и не досконально знаю все возможные опции для настройки файл-теста. Однако, готовые шаблоны можно всегда найти в Интернете.

https://fio.readthedocs.io/en/latest/fio_doc.html#examples

Хотелось бы отметить, что утилитой fio кроме дисков можно проводить тестирование программных и аппаратных массивов.

Источник:
https://internet-lab.ru/fio_linux

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.