Re: Разбухание nginx-а после релоада
Maxim Dounin
mdounin на mdounin.ru
Пт Окт 15 14:15:37 MSD 2010
Hello!
On Fri, Oct 15, 2010 at 04:15:53AM -0400, andy_andy wrote:
> Использую геобазу и модуль geo_module
> После старта потребление памяти такое:
>
> root 11941 0.0 0.3 62808 20764 ? Ss 10:08 0:00 nginx:
> master process /usr/sbin/nginx
> www-data 11942 0.5 0.3 64428 22476 ? S 10:08 0:00 nginx:
> worker process
> www-data 11943 0.5 0.3 64428 22496 ? S 10:08 0:00 nginx:
> worker process
>
> Делаю сразу релоад конфига и получаю
> это:
>
> root 11941 0.3 0.6 83420 41452 ? Ss 10:08 0:00 nginx:
> master process /usr/sbin/nginx
> www-data 11972 0.5 0.6 83420 40980 ? S 10:09 0:00 nginx:
> worker process
> www-data 11973 0.5 0.6 83420 40948 ? S 10:09 0:00 nginx:
> worker process
>
> причем это реальное потребление, а на
> мелком VPS сразу в свап уходит
> И память не уменьшается до полного
> рестарта
> Системы ubuntu server 10.04 и debian lenny, тестировал
> и 64bit и 32bit
>
> Как с этим бороться?
Если версия nginx'а старее чем 0.7.23 - обновится, возможно станет
немного получше.
Но вообще насколько я понимаю проблема связана с тем что системный
аллокатор не отдаёт память обратно, хотя nginx и освобождает всю
память от старого конфига. По крайней мере последующие reload'ы к
дальнейшему росту не приводят. Хотя подробно я на это пока не
смотрел.
В своп уходить будет так или иначе - при reload'е сначала
читается/проверяется новый конфиг, а потом уже освобождается
старый. Плюс к этому ещё и новые рабочие процессы создаются (а
потом уже завершаются старые). Чтобы делать reload - нужно иметь
запас по памяти.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru