Где я могу получить самую свежую информацию об aio в Linux 2.6.x?
Вопрос
Недавно я учусь писать высокопроизводительный веб-сервер. RedHat провел эксперимент, согласно которому epoll работает быстрее, чем aio.кто-то говорит это потому, что aio в ядре Linux реализован с помощью pthread.Мне трудно найти свежую информацию, подтверждающую это. Кроме того, я не знаю, является ли epoll лучше, чем aio сейчас в Linux? Поэтому я хочу знать, где я могу получить самую свежую информацию об aio в Linux 2.6.x.Большое спасибо!
Решение
Я исследую ту же область.
Можете ли вы вообще заставить 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%
- компакт-диск /прок;кошка */статус | Грепское состояние - посмотрите, кто заблокирован на диске
- /sys/block//queue/iosched — настройки планировщика ввода-вывода