Что может замедлить команду ATA read-verify, отправляемую на жесткий диск Linux?

Я пишу программу на C для сканирования жестких дисков с помощью команды ATA read-verify(0x40) в Linux, как, например, сканирование MHDD в DOS.

Я выполняю команду, используя HDIO_DRIVE_TASK, и измеряю время блокировки ioctl, используя CLOCK_MONOTONIC.
Я запускаю программу от имени пользователя root, и ее значение ionice установлено в режиме реального времени, но показания всегда больше, чем показывает MHDD. Кроме того, результаты MHDD не сильно меняются, но результаты моей программы часто сильно различаются.
Я пытаюсь выполнить команду дважды для каждого блока и измерить время блока второго прогона. Это решает часть проблемы, но мои результаты по-прежнему сильно различаются.

Какие факторы могут замедлить мою команду? Как мне их избежать?

PS У меня есть несколько запасных дисков с другим здоровьем для тестирования использования.

0 ответов

Другие вопросы по тегам