ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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




 




Copyright © Lexa Software, 1996-2009.