ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FreeBSD & Linux disk AIO support



Скорее всего

On a RHEL 3 system where Oracle does NOT make async I/O calls, the output looks like this:
$ egrep "kioctx|kiocb" /proc/slabinfo
kioctx                 0      0    128    0    0    1 : 1008  252
kiocb                  0      0    128    0    0    1 : 1008  252
$
Once Oracle makes async I/O calls, the output on a RHEL 3 system will look like this:
$ egrep "kioctx|kiocb" /proc/slabinfo
kioctx               690    690    128   23   23    1 : 1008  252
kiocb              58446  65160    128 1971 2172    1 : 1008  252
$
http://www.puschitz.com/TuningLinuxForOracle.shtml#EnablingAsynchronousIOSupport
Для оракла aio Это "гут", но вроде есть ситуациикогда это не так уж и хорошо,
хотя я с этим не сталкивался. У меня всегда производительность с directio+async
была выше чем без них.

Лазовский Вадим wrote:
Igor Sysoev пишет:
On Wed, Aug 26, 2009 at 05:08:35PM +0400, Лазовский Вадим wrote:

Igor Sysoev пишет:
On Wed, Aug 26, 2009 at 02:27:13PM +0400, Dmitriy Timokhin wrote:

2009/8/26 Igor Sysoev <is@xxxxxxxxxxxxx>:
Ещё один патч. Должен работать с glibc 2.7.

В src/os/unix/ngx_linux_config.h не хватает #if (NGX_HAVE_EVENTFD2 ||
NGX_HAVE_EVENTFD) .. #endif вокруг #include <sys/eventfd.h>
Если их добавить -- начинает собираться на glibc2.7
В общем, я решил всегда вызывать eventfd() как сискол.
С этим glibc и двумя разными eventfd() один геморрой.

Патч.
С последним патчем не собирается, при линковке:

objs/src/core/ngx_output_chain.o: In function `ngx_aio_read_file':
/usr/src/nginx-0.8.10/src/core/ngx_output_chain.c:636: undefined reference to `ngx_file_aio_read'
collect2: ld returned 1 exit status
make[1]: *** [objs/nginx] Error 1
make[1]: Leaving directory `/usr/src/nginx-0.8.10'
make: *** [build] Error 2

Новый патч.




Спасибо. С этим патчем все собралось.

Вчера потестировал под линуксом, есть пара вопросов.

Снизил количество воркеров со 100 до 10. Отдача трафика не изменилась (1600М в пике). Замечу, что 100 - количество с огромным запасом, осталось со времен, когда было мало памяти и кеш был неэффективен.

1. Как определить, что вообще используется aio? :) В линуксе есть ядерные нити [aio/N], но они бездействуют.
2. Нормально ли то, что воркеры переходят в состояние D?








 




Copyright © Lexa Software, 1996-2009.