FreeBSD & Linux disk AIO support

Igor Sysoev is at rambler-co.ru
Thu Aug 27 14:04:38 MSD 2009


On Thu, Aug 27, 2009 at 11:18:09AM +0400, Igor Sysoev wrote:

> On Thu, Aug 27, 2009 at 10:54:10AM +0400, Лазовский Вадим wrote:
> 
> > Igor Sysoev пишет:
> > 
> > Вчера потестировал под линуксом, есть пара вопросов.
> > 
> > Снизил количество воркеров со 100 до 10. Отдача трафика не изменилась 
> > (1600М в пике). Замечу, что 100 - количество с огромным запасом, 
> > осталось со времен, когда было мало памяти и кеш был неэффективен.
> > 
> > 1. Как определить, что вообще используется aio? :) В линуксе есть 
> > ядерные нити [aio/N], но они бездействуют.
> 
> Не знаю. Во FreeBSD - по sysctl vfs.aio и wchan воркеров и aiodN.
> А в Линуксе - не знаю. Я смотрел по отладочному логу.
> 
> > 2. Нормально ли то, что воркеры переходят в состояние D?
> 
> Насколько я понимаю, нет - в D должны быть aio/N.
> Файлы большие или нет ? Если небольшие, то, по-видимому, из-за того,
> что AIO в Линуксе работает только совместно с O_DIRECT, по сути сисколы
> AIO работают синхронно.

Забыл указать ещё один момент: нужно ещё выключать sendfile:

   location / {
      sendfile        off;
      aio             on;
      directio        128k;
      output_buffers  1 128k;

Сейчас похоже, всё отдавалось sendfile()ом.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list