Тестируем скорость диска при помощи fio

Тест случайных операций на чтение/запись

При запуске такого теста, будет создан файл размером 4Gb. Затем утилита fio выполнит чтение/запись блока 4Kb (размер блока по-умолчанию) с разделением на 75/25% по количеству операций чтения и записи и замерит производительность, ключ iodepth при этом позволяет процессу получить приоритет над другими создав глубину очереди, после теста удаляем тестовый файл с диска

fio --ioengine=libaio --direct=1 --name=fiotest --filename=testfio --iodepth=32 --size=4G --rwmixread=75 --readwrite=randrw ; rm -f testfio

Тест линейных операций на чтение/запись будет отличаться одним ключем --readwrite

fio --ioengine=libaio --direct=1 --name=fiotest --filename=testfio --iodepth=32 --size=4G --rwmixread=75 --readwrite=rw ; rm -f testfio

При измерении скорости на NVMe дисках следует указывать параметр блока --bs=128k
Устройство AHCI ограничено одной очередью глубиной 32, в то время как NVMe поддерживает 64К (65536) очередей с глубиной 65536 каждая тем самым достигается высокая параллельность операции на NVMe устройствах. Это одна из причин, почем использовать утилиты на них dd и hdparm бесполезно и для измерения реальной скорости необходимо измерять скорость блоками 32k, 64k, 128k. Линейное и случайное чтение в норме должны быть почти одинаковыми. То же касается и записи данных.

Полезная ссылка: https://habr.com/ru/post/154235/