Re: Течет память при проксировании

Maxim Dounin mdounin на mdounin.ru
Вс Май 27 16:45:46 UTC 2012


Hello!

On Sat, May 26, 2012 at 10:44:55PM +0700, Denis F. Latypoff wrote:

> Приветствую.   Пробовал   1.2.0   и   1.3.0,   вот  на  таком  трафике
> http://s12.postimage.org/64ix4e8vf/localhost_nginx_request_week.png
> процессы  растут  с  70мб  до  1гб  (RSS)  за  сутки.  Трафик  генерит

На каких-то версиях оно вело себя по другому?  Если да - на каких, 
и какие при этом использовались библиотеки и операционная система?

> самописный  клиент  с  другого  сервера. Keepalive'а нет. Nginx только
> проксирует,  бекенд  отдает  очень  короткий  ответ  (байт  200-300  с
> заголовками). Этот клиент обязательно дожидается ответа, только потом
> закрывает соединение сам. Конфиг такой:

Мне видится два наиболее вероятных варианта:

1) Оно на самом деле не течёт, и видимый рост RSS - это результат 
работы системного аллокатора, не возвращающего память обратно.  
Если да - то на каком-то более или менее разумном объёме (с учётом 
gzip'а - килобайт 300-500 на соединение, считать максимум по 
соединениям с момента старта) оно должно стабилизироваться.  С 
учётом 

>     worker_connections  32768;

тут 1 гиг - не показатель, нужно за количеством соединений 
последить внимательнее.

2)

>     geoip_city     /usr/share/GeoIP/GeoIPCity.dat   utf8;
>     geoip_org      /usr/share/GeoIP/GeoIPASNum.dat  utf8;

Модуль geoip - он, конечно, хороший, но пользуется библиотекой 
от MaxMind'а.  А та известна как минимум тем, что падает на 
некорректных данных в базе.  Так что я бы рекомендовал выключить и 
посмотреть, что будет.

Maxim Dounin



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