Потребление памяти воркерами
Andrey Ignatov
andr.pl at gmail.com
Tue Dec 11 19:36:16 MSK 2007
On Tue, Dec 11, 2007 at 06:04:08PM +0200, Olexander Shtepa wrote:
> > > В определённые моменты воркеры занимали RSS более 700М.
> > > После сигнала -HUP новорождённые воркеры занимают по 4-6 МБ и набирают по ~80 МБ в час каждый.
> > > По достижению определённого порога рост прекращается.
Была аналогичная ситуация некоторое время назад.
> > > Могу предоставлю дополнительную информацию.
> > >
> > proxy_buffering on;
> >
> > случайно не используется ?
>
> Буферизация включена. Вот настройки:
>
> worker_processes 2;
> worker_rlimit_nofile 10000;
> timer_resolution 100ms;
> events {
> use epoll;
> worker_connections 10000;
> }
> http {
> sendfile on;
> tcp_nopush on;
> tcp_nodelay on;
> keepalive_timeout 65;
Снизить потребление памяти помогло уменьшение этого таймаута.
Сейчас стоит:
keepalive_timeout 3;
А выключение keepalive приводило к уменьшению RSS до неск. мегабайт на
каждыйворкер (не более 10). Возможно Вам поможет.
> gzip on;
> gzip_min_length 1100;
> client_max_body_size 10m;
> proxy_read_timeout 1h;
> }
> Внутри десятка вхостов используется следующая одинаковая конфигурация:
> location / {
> proxy_pass http://cluster;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-HTTPS "";
> proxy_redirect off;
> }
> и несколько директив rewrite
>
> Остальное по дефолту.
> Бекендов у меня 4 и в каждом MaxClients 200
> Так что максимально занимаемая память на буферизацию будет:
> (1+8)*4к*(200*4)=28800к
>
> Полчаса назад в секции http сделал proxy_buffering off, но всёравно:
> USER PID %CPU %MEM VSZ RSS STAT START TIME COMMAND
> root 17376 0.0 0.1 16476 3104 S Nov15 0:15 nginx: master process
> nginx 29728 4.4 4.8 115192 101288 S 15:33 1:08 nginx: worker process
> nginx 29729 4.2 3.6 89768 75868 R 15:33 1:04 nginx: worker process
>
> Так что не в буферизации дело.
--
Andrey Ignatov
Skript, System administrator
More information about the nginx-ru
mailing list