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