Re: утечка сокетов и дескрипторов (0.8.52, FreeBSD 8.1 amd64, aio sendfile)

Igor Sysoev igor на sysoev.ru
Пн Окт 18 16:12:45 MSD 2010


On Mon, Oct 18, 2010 at 08:03:06AM -0400, zuborg wrote:

> Пока не знаю, где проблема - или в FreeBSD 8.1
> или в nginx
> 
> После длительной работы получаем такую
> ситуацию:
> 
> # uname -rm
> 8.1-RELEASE amd64
> # fstat | grep nginx | wc -l
>    74981
> # fstat | grep nginx | grep internet | wc -l
>    41403
> # sysctl kern.openfiles
> kern.openfiles: 75029
> # netstat -an | grep CLOSED | wc -l
>    37069
> # netstat -an | wc -l
>    45273
> # vmstat -z
> ITEM                     SIZE     LIMIT      USED      FREE  REQUESTS 
> FAILURES
> ...
> socket:                   680,   128004,    45080,    41578, 113208581, 
>  115223
> ...
> tcp_inpcb:                336,   128007,    45169,    41742, 109066845, 
>   14647
> tcpcb:                    880,   128000,    45015,    41749, 109066382, 
>     463
> ...
> 
> 
> конфиг nginx-а:
> worker_processes 4;
> events {
>   worker_connections 65536;
>   use kqueue;
> }
> http {
>   output_buffers 1 256k;
>   read_ahead 1m;
>   aio sendfile;
>   sendfile      on;
>   sendfile_max_chunk 128k;
>   #gzip         on;
>   tcp_nopush    on;
>   tcp_nodelay   on;
>   #keepalive_timeout    0;
>   keepalive_timeout     5;
>   reset_timedout_connection on;
> ...
> }
> 
> Куда копать ? Как выяснить почему CLOSED tcp
> соединения не убиваются ?

Это ошибка в nginx/AIO. Попробуйте 0.8.53, там есть часть фиксов Максима
на эту тему. Используется ли limit_rate ?


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



Подробная информация о списке рассылки nginx-ru