Утечка файл дескрипторов?
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