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