Linux IOSTAT двойной счет операций записи AIO?

В рамках отладки генератора ввода-вывода я столкнулся с нечетным набором результатов в RH 6.4, работающих на оборудовании x64 (проверено на нескольких системах):

- Приложение использует linux async IO (то есть не-posix) для доступа к разделам необработанного диска (/dev/sdb1, O_DIRECT) и запускается от имени пользователя root

- Приложение сообщает 100 IO / S, и 60% пишет.

- страсть приложения сообщает 100 вызовов в секунду в io_submit() и io_getevents(), отражая 100 операций AIO в секунду

- "dstat --aio" показывает 100 операций в секунду

- iostat сообщает 40 операций чтения в секунду, как и ожидалось, но 120 операций записи в секунду, что вдвое больше, чем ожидалось

- Более ранняя реализация, использующая синхронный ввод-вывод, не показывает "удвоенные" записи

Является ли это поведение известной ошибкой?

1 ответ

Решение

После некоторого дальнейшего тестирования кажется, что это поведение ограничено планировщиком (по умолчанию) CFQ. Переход к планировщику NOP привел IOSTAT в соответствие с другими инструментами измерения.

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