Утечка файл дескрипторов?

Mike Kolesnikov mozilla_bugs at mail.ru
Wed Mar 16 13:38:59 MSK 2005


Igor Sysoev wrote:

>>Сейчас кстати кол-во свободных дескрипторов устаканилось:
>>cat /proc/sys/fs/file-nr
>>1993    969     104032
>>Я буду следить за ситуацией, lsof и /proc/<pid>/fd нам помогут :)

Докладаю:
cat /proc/sys/fs/file-nr
1993    861     104032

Число занятых дескрипторов потихоньку растет.

ls /proc/<pid>/fd |wc -l
281

Вчера вечером было меньше 200 - колебалось в районе 170.

lsof -n |grep nginx |grep <pid> |grep TCP |wc -l
62

lsof -n |grep nginx |grep <pid> |grep REG |wc -l
223

Наконец, самое интересное:
lsof -n|grep nginx|grep REG|awk '{print $9}'|sort|uniq -c|sort -nr
    213 /home/ads/website/index.php
      4 /usr/local/nginx/logs/error.log
      2 /var/log/httpd/ads-error_log
      2 /usr/local/nginx/sbin/nginx
      2 /usr/lib/libz.so.1.1.4
      2 /lib/tls/libc-2.3.2.so
      2 /lib/libnss_files-2.3.2.so
      2 /lib/ld-2.3.2.so
      1 /home/ads/website/banners/medusapoweranalyzerplus01.swf

Что бы это значило? index.php просто перенаправляет на /admin/index.php
Может, что-то с директивой index или fastcgi_index?
Вот как они используются в конфиге:

        location ~* ^.+\.(php|phtml)$ {
                fastcgi_pass  localhost:1234;
                fastcgi_root   /home/ads/website;
                fastcgi_index  index.php;

                fastcgi_connect_timeout       10;
                fastcgi_send_timeout          2m;
                fastcgi_read_timeout          3m;

                fastcgi_header_buffer_size    64k;
                fastcgi_buffers               8 32k;
                fastcgi_busy_buffers_size     64k;
                fastcgi_temp_file_write_size  256k;

                fastcgi_x_powered_by       off;
        }

        location / {
            root         /home/ads/website;
            index        index.php index.htm index.html;
            expires      30d;
        }

> Да, судя по всему, второе поле означает число свободных file handles
> из тех что уже были выделены (первое число). Я просто тыкнул в две ссылки
> в Гугле и прочитал про unused. Но в любом случае, в системе не
> использовалось одновременно больше 1993 файлов. Стало быть, это не утечка,
> а limit. А что показывает nginx при запуске в самом начале про
> getrlimit(RLIMIT_NOFILE) ?

Так и утечка будет упираться в лимит точно так же, так что это не
показатель.
2005/03/16 04:33:13 [info] 10874#0: getrlimit(RLIMIT_NOFILE): 1024:1024






More information about the nginx-ru mailing list