Где я могу получить последнюю информацию о AIO в Linux 2.6.x - PullRequest
3 голосов
/ 21 июля 2010

Недавно я учусь писать высокопроизводительный веб-сервер. В RedHat есть эксперимент, в котором говорится, что epoll быстрее, чем aio.кто-то говорит, что потому что aio в ядре Linux реализован с помощью pthread.Мне трудно найти последнюю информацию, чтобы доказать это. Также я не знаю, что epoll все еще лучше, чем aio сейчас в Linux? Поэтому я хочу знать, где я могу получить новейшую информацию о aio в Linux 2.6.x.Огромное спасибо!

1 Ответ

2 голосов
/ 20 августа 2010

Я исследую ту же область.

Можете ли вы даже заставить aio работать на Linux?Я пишу 300M с помощью aio_write () и вижу их как грязные страницы в кеше.Это означает, что они обращаются не напрямую к планировщику ввода-вывода, а к виртуальной машине, а затем к pdflush / flush.Это означает, что aio так же хорош / плох, как просто буферизованный io.

Я на 2.6.16.46 на сборочной машине и 2.6.27.19 на целевой.Это не совсем новое ядро ​​/ библиотека Linux, поэтому это может быть проблемой.

Другой аспект - это используемый вами планировщик ввода-вывода.CFQ поддерживает синхронный ввод-вывод, но может быть настроен для асинхронного.Он также поддерживает приоритеты ввода-вывода.

Для начала, я бы порекомендовал посмотреть несколько мест при выполнении ввода-вывода:

  1. / proc / meminfo - см. Тренды грязных страниц
  2. echo 1> / proc / sys / vm / block_dump и посмотрите системный журнал, вы увидите, кто и когда пишет,
  3. sar -dp 1 - посмотрите, используются ли ваши устройства на 100%
  4. cd / proc;кошка * / статус |Состояние grep - посмотрите, кто заблокирован на диске
  5. / sys / block // очередь / iosched - настройки планировщика io
...