<!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">&lt;is@rambler-co.ru&gt;</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 &lt;sys/eventfd.h&gt;
          <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>