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