<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=windows-1251"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Скорее всего <br>
<br>
On a RHEL 3 system where Oracle does NOT make async I/O calls, the
output looks like this:
<pre>$ <font color="#0000ff">egrep "kioctx|kiocb" /proc/slabinfo</font>
kioctx <font color="#ff0000">0</font> 0 128 0 0 1 : 1008 252
kiocb 0 0 128 0 0 1 : 1008 252
$
</pre>
Once Oracle makes async I/O calls, the output on a RHEL 3 system will
look like this:
<pre>$ <font color="#0000ff">egrep "kioctx|kiocb" /proc/slabinfo</font>
kioctx <font color="#ff0000">690</font> 690 128 23 23 1 : 1008 252
kiocb 58446 65160 128 1971 2172 1 : 1008 252
$
</pre>
<a class="moz-txt-link-freetext" href="http://www.puschitz.com/TuningLinuxForOracle.shtml#EnablingAsynchronousIOSupport">http://www.puschitz.com/TuningLinuxForOracle.shtml#EnablingAsynchronousIOSupport</a><br>
Для оракла aio Это "гут", но вроде есть ситуациикогда это не так уж и
хорошо, <br>
хотя я с этим не сталкивался. У меня всегда производительность с
directio+async <br>
была выше чем без них.<br>
<br>
Лазовский Вадим wrote:
<blockquote cite="mid:4A962D92.80702@rkmail.ru" type="cite">Igor Sysoev
пишет:
<br>
<blockquote type="cite">On Wed, Aug 26, 2009 at 05:08:35PM +0400,
Лазовский Вадим wrote:
<br>
<br>
<blockquote type="cite">Igor Sysoev пишет:
<br>
<blockquote type="cite">On Wed, Aug 26, 2009 at 02:27:13PM +0400,
Dmitriy Timokhin wrote:
<br>
<br>
<blockquote type="cite">2009/8/26 Igor Sysoev
<a class="moz-txt-link-rfc2396E" href="mailto:is@rambler-co.ru"><is@rambler-co.ru></a>:
<br>
<blockquote type="cite">Ещё один патч. Должен работать с
glibc 2.7.
<br>
<br>
</blockquote>
В src/os/unix/ngx_linux_config.h не хватает #if (NGX_HAVE_EVENTFD2 ||
<br>
NGX_HAVE_EVENTFD) .. #endif вокруг #include <sys/eventfd.h>
<br>
Если их добавить -- начинает собираться на glibc2.7
<br>
</blockquote>
В общем, я решил всегда вызывать eventfd() как сискол.
<br>
С этим glibc и двумя разными eventfd() один геморрой.
<br>
<br>
Патч.
<br>
</blockquote>
С последним патчем не собирается, при линковке:
<br>
<br>
objs/src/core/ngx_output_chain.o: In function `ngx_aio_read_file':
<br>
/usr/src/nginx-0.8.10/src/core/ngx_output_chain.c:636: undefined
reference to `ngx_file_aio_read'
<br>
collect2: ld returned 1 exit status
<br>
make[1]: *** [objs/nginx] Error 1
<br>
make[1]: Leaving directory `/usr/src/nginx-0.8.10'
<br>
make: *** [build] Error 2
<br>
</blockquote>
<br>
Новый патч.
<br>
<br>
<br>
<br>
</blockquote>
<br>
Спасибо. С этим патчем все собралось.
<br>
<br>
Вчера потестировал под линуксом, есть пара вопросов.
<br>
<br>
Снизил количество воркеров со 100 до 10. Отдача трафика не изменилась
(1600М в пике). Замечу, что 100 - количество с огромным запасом,
осталось со времен, когда было мало памяти и кеш был неэффективен.
<br>
<br>
1. Как определить, что вообще используется aio? :) В линуксе есть
ядерные нити [aio/N], но они бездействуют.
<br>
2. Нормально ли то, что воркеры переходят в состояние D?
<br>
<br>
<hr size="4" width="90%"><br>
<center><img src="cid:part1.08010304.04030707@mail.ru"></center>
<p><br>
</p>
<hr size="4" width="90%"><br>
<center><img src="cid:part2.04040005.03050308@mail.ru"></center>
</blockquote>
</body>
</html>