FreeBSD & Linux disk AIO support

Лазовский Вадим lvm at rkmail.ru
Thu Aug 27 14:56:29 MSD 2009


Igor Sysoev пишет:
> 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()ом.
> 
> 

Посыпалось вот такое:

2009/08/27 14:50:13 [alert] 14152#0: io_getevents() did not return 
18446744073709551615 events
2009/08/27 14:50:13 [alert] 14152#0: io_getevents() did not return 1 events
2009/08/27 14:52:33 [alert] 14155#0: io_getevents() did not return 
18446744073709551615 events
2009/08/27 14:52:33 [alert] 14155#0: io_getevents() did not return 1 events
2009/08/27 14:54:39 [alert] 14155#0: io_getevents() did not return 
18446744073709551615 events
2009/08/27 14:54:39 [alert] 14155#0: io_getevents() did not return 1 events






More information about the nginx-ru mailing list