Сейчас кстати кол-во свободных дескрипторов устаканилось:
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