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

Igor Sysoev is at rambler-co.ru
Tue Mar 15 21:01:23 MSK 2005


On Tue, 15 Mar 2005, Mike Kolesnikov wrote:

> Поставил nginx+PHP/FastCGI вместо апача на ad сервер, крутить phpAdsnew.
> После нескольких дней работы наблюдается такая картина: на все PHP
> запросы 500 internal server error, в логе:
>
> 2005/03/15 11:21:39 [alert] 13114#0: *8550225 socket() failed (24: Too
> many open files) while connecting to upstream, client: 24.233.133.21,
> URL: /adjs.php?n=505798710&what=zone:89&exclude=,, upstream:
> fastcgi://127.0.0.1:1234/adjs.php?n=505798710&what=zone:89&exclude=,
> 2005/03/15 11:21:39 [alert] 13114#0: *8550231 socket() failed (24: Too
> many open files) while connecting to upstream, client: 208.44.235.98,
> URL: /adjs.php?n=af63bc71&what=zone:75&block=1&exclude=,, upstream:
> fastcgi://127.0.0.1:1234/adjs.php?n=af63bc71&what=zone:75&block=1&exclude=,
> 2005/03/15 11:21:39 [alert] 13114#0: accept() on xx.xx.xx.xx:80 failed
> (24: Too many open files)
>
> cat /proc/sys/fs/file-nr
> 1993    113     104032
>
> Рестарт nginx помогает, дескрипторы освобождаются:
> cat /proc/sys/fs/file-nr
> 1993    1095    104032
>
> После получаса работы имеем:
> cat /proc/sys/fs/file-nr
> 1993    961     104032

Если я правильно понимаю в Линуксе, то эти строки показывают следующее:

1) за всё время было открыто одновременно всего 1993 файла;
2) в первом примере открыто 113 файла;
3) после рестарта стало открыто 1095; где здесь происходит освобождение,
    я не вижу;
4) после получаса работы открыто 961 файл, то есть, меньше, чем на старте.

> Как боротся, кроме бесконечного увеличения доступных дескрипторов и
> регулярных рестартов nginx? Может, я чего делаю неправильно?
>
> Система: RHEL3, 2.4.21-20.EL
> nginx 0.1.24, PHP 4.3.11-dev (из CVS)
> Начало конфига:
> user  apache apache;
> worker_processes  1;
>
> events {
>        connections   1560;
>        use rtsig;
> }

Скорее всего, нужно увеличить "limits -n".
Можно ещё отключить keep-alive, если он не нужен:

keepalive_timeout  0;


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list