В последнее время я пытаюсь проверить свой диск с помощью fio. Моя конфигурация МСН выглядит следующим образом:Почему iops наблюдается от fio, отличного от наблюдаемого iostat?
[global]
invalidate=0 # mandatory
direct=1
#sync=1
fdatasync=1
thread=1
norandommap=1
runtime=10000
time_based=1
[write4k-rand]
stonewall
group_reporting
bs=4k
size=1g
rw=randwrite
numjobs=1
iodepth=1
В этой конфигурации, вы можете увидеть, что я настроен делать ФИО случайных операций записи с использованием прямого ввода-вывода. Пока тест выполняется, я использовал iostat для мониторинга производительности ввода-вывода. И я обнаружил, что: если я установил fdatasync в 1, то iops, наблюдаемый fio, составляет около 64, а наблюдаемый iostat - около 170. Почему это другое? И если я не настрою «fdatasync», оба iops примерно одинаковы, но намного выше, около 450. Почему? Насколько я знаю, прямая io не проходит через кеш страниц, что, на мой взгляд, означает, что это должно занимать примерно одно и то же время, независимо от того, используется ли fdatasync.
И я слышал, что при некоторых обстоятельствах iostat может придумать неправильную статистику. Это реально? Что именно обстоятельство могло бы привести к тому, что iostat пойдет не так? Существуют ли какие-либо другие инструменты, которые я могу использовать для мониторинга производительности ввода-вывода?