Утечка файл дескрипторов?
Igor Sysoev
is at rambler-co.ru
Wed Mar 16 13:56:49 MSK 2005
On Wed, 16 Mar 2005, Mike Kolesnikov wrote:
> 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
Запрос / попадает в "location /". Для него пробуются индексы
index.php, index.htm и index.html. Подходит первый - 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
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list