kill -HUP и потребление памяти

Igor Sysoev is at rambler-co.ru
Wed Feb 1 09:14:19 MSK 2006


On Wed, 1 Feb 2006, Alexey Polyakov wrote:

> Так случилось, что мне нужно писать довольно  в большое число
> лог-файлов с буферизацией.
>
> Сразу после запуска nginx выделяет себе порядка 45 мегабайт памяти под
> буферы (т. е. с выключенной буферизацией размер каждого воркера
> показывается на 45 меньше). После того как я первый раз делаю HUP -
> размер памяти скачкообразно вырастает примерно в два раза, и далее
> плавно растет (по 100-150 килобайт) после каждого HUP.
>
> Если для всех этих логов выключить буферы - то столько памяти сразу не
> расходуется, однако прирост по 100-150 кб после HUP все равно
> присутствует.
>
> Случилось это у меня на Linux с ядром 2.6, однако проверил - на
> FreeBSD 6 - примерно так же утекает память.

Увеличение в два раза происходит из-за того, что основной процесс
во время обработки новой конфигурации ещё держит в памяти старую
на тот случай, если с новой будут проблемы. После успешного тестирования
новой старая освобождается, но системный malloc не всегда может вернуть
эту память ядру.

Мелкий прирост (100-150К) лучше смотреть не на рабочих процессах,
а на основном, так как его возможные утечки наследуются рабочими.
Если убрать буфера и послать 10-20 раз подряд -HUP мастеру память
всё так же стабильно увеличивается или устаканиватеся на каком-то
уровне ?

Что касается большого числа буферов, то я не думаю, что имеет
смысл включать буферизацию для всех логов.


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





More information about the nginx-ru mailing list