ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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



 




Copyright © Lexa Software, 1996-2009.