Я исследую ту же область.
Можете ли вы даже заставить aio работать на Linux?Я пишу 300M с помощью aio_write () и вижу их как грязные страницы в кеше.Это означает, что они обращаются не напрямую к планировщику ввода-вывода, а к виртуальной машине, а затем к pdflush / flush.Это означает, что aio так же хорош / плох, как просто буферизованный io.
Я на 2.6.16.46 на сборочной машине и 2.6.27.19 на целевой.Это не совсем новое ядро / библиотека Linux, поэтому это может быть проблемой.
Другой аспект - это используемый вами планировщик ввода-вывода.CFQ поддерживает синхронный ввод-вывод, но может быть настроен для асинхронного.Он также поддерживает приоритеты ввода-вывода.
Для начала, я бы порекомендовал посмотреть несколько мест при выполнении ввода-вывода:
- / proc / meminfo - см. Тренды грязных страниц
- echo 1> / proc / sys / vm / block_dump и посмотрите системный журнал, вы увидите, кто и когда пишет,
- sar -dp 1 - посмотрите, используются ли ваши устройства на 100%
- cd / proc;кошка * / статус |Состояние grep - посмотрите, кто заблокирован на диске
- / sys / block // очередь / iosched - настройки планировщика io