Тест случайных операций на чтение/запись
При запуске такого теста, будет создан файл размером 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/