Master процесс nginx 0.6.38 съедает всю доступную память

Igor Sysoev is at rambler-co.ru
Thu Sep 10 09:07:36 MSD 2009


On Thu, Sep 10, 2009 at 01:53:43AM +0500, Одинцов Павел wrote:

> Добрый вечер!
> 
> Не помогло, баг воспроизвелся :( Возник ещё ряд подозрений..
> 
> /usr/sbin/nginx -V
> nginx version: nginx/0.6.38
> built by gcc 4.1.2 20080704 (Red Hat 4.1.2-44)
> configure arguments:
>  --http-client-body-temp-path=/var/lib/nginx/tmp/client_body
>  --http-proxy-temp-path=/var/lib/nginx/tmp/proxy
>  --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi
>  --with-http_perl_module
> 
> Может nginx не может сохранять временные файлы? Пермишены на папки следующие:

Нет, мастер-процесс не создаёт ни одного временного файла.

> sudo ls -la /var/lib/nginx/tmp/client_body
> total 8
> drwx------ 2 nginx root  4096 Sep 10 00:49 .
> drwxr-xr-x 5 nginx nginx 4096 Sep  8 14:20 ..
> 
> sudo ls -la /var/lib/nginx/tmp/proxy
> total 48
> drwx------  12 nginx root  4096 Apr 29 07:23 .
> drwxr-xr-x   5 nginx nginx 4096 Sep  8 14:20 ..
> drwx------ 102 nginx nginx 4096 May 16 19:11 0
> drwx------ 102 nginx nginx 4096 May 16 19:11 1
> drwx------ 102 nginx nginx 4096 May 16 19:11 2
> drwx------ 102 nginx nginx 4096 May 16 19:11 3
> drwx------ 102 nginx nginx 4096 May 16 19:11 4
> drwx------ 102 nginx nginx 4096 May 16 19:11 5
> drwx------ 102 nginx nginx 4096 May 16 19:11 6
> drwx------ 102 nginx nginx 4096 May 16 19:11 7
> drwx------ 102 nginx nginx 4096 May 16 19:11 8
> drwx------ 102 nginx nginx 4096 May 16 19:11 9
> 
> Также вопрос -- может ли эксперементальный модуль перла есть память?

Да, пожалуй, перл это единственный источник таких огромных утечек памяти
в мастер-процессе после переконфигураций.

> 2009/9/8 Одинцов Павел <pavel.odintsov at googlemail.com>:
> > Добрый день!
> >
> > Спасибо большое, Игорь, за ответ. Пересобрали без fair, следим за нагрузкой.
> >
> > 2009/9/8 Igor Sysoev <is at rambler-co.ru>:
> >> On Tue, Sep 08, 2009 at 01:18:21AM +0500, Одинцов Павел wrote:
> >>
> >>> Добрый вечер
> >>>
> >>> Имеется очень противная проблема, nginx 0.6.38 (epel репозиторий)
> >>> стоит проксей перед хостинговой Апачей и попутно раздает статику;
> >>> изредка на паре машин из полутора десятков nginx (master процесс)
> >>> начинает жутко поедать память и в итоге через пару минут сваливает
> >>> машину. Подозрения о причинах такого поведения есть в сторону буферов
> >>> и проксирования больших файлов от Апача, но тут ничего толком не
> >>> получилось понять.  Помогайте :(
> >>>
> >>> Вот вывод top в этот момент:
> >>>
> >>> top - 11:38:50 up 23:26, 1 user, load average: 53.15, 50.24, 24.40
> >>> Tasks: 130 total, 3 running, 120 sleeping, 0 stopped, 7 zombie
> >>> Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 67.3%id, 32.5%wa, 0.0%hi, 0.0%si, 0.0%st
> >>> Mem: 10240000k total, 5919988k used, 4320012k free, 12036k buffers
> >>> Swap: 4194296k total, 3842072k used, 352224k free, 128848k cached
> >>>
> >>>   PID  USER  PR  NI  VIRT  RES  SHR  S  %CPU %MEM TIME+   COMMAND
> >>>  1731  root      18  0  10.6g  4.6g   892   R  0.3       47.4     6:34.06 nginx
> >>>
> >>> Конфиг:
> >>>
> >>> user              nginx;
> >>> worker_processes  1;
> >>> error_log         /var/log/nginx/error.log;
> >>> pid               /var/run/nginx.pid;
> >>>
> >>> events {
> >>>     worker_connections  10024;
> >>> }
> >>>
> >>> http {
> >>>     include       /etc/nginx/mime.types;
> >>>     default_type  application/octet-stream;
> >>>
> >>>     proxy_buffers 8 16k;
> >>>     proxy_buffer_size 32k;
> >>>
> >>>     access_log  /var/log/nginx/access.log  main;
> >>>     sendfile        on;
> >>>     keepalive_timeout  65;
> >>>
> >>>       client_max_body_size 16m;
> >>>       server_names_hash_bucket_size 64;
> >>>       server {
> >>>               listen xx.xx.xx.xx:80;
> >>>               server_name server6.hostname.ru;
> >>>
> >>>               location / {
> >>>                       proxy_pass http://xx.xxx.xx.xx:8080;
> >>>                       proxy_redirect http://server6.hostname.ru:8080/ /;
> >>>                       proxy_set_header Host $host;
> >>>                       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> >>>                       proxy_set_header X-Real-IP $remote_addr;
> >>>               }
> >>>               location @fallback {
> >>>                       proxy_pass http://xx.xxx.xx.xxx:8080;
> >>>                       proxy_set_header Host $host;
> >>>                       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> >>>                       proxy_set_header X-Real-IP $remote_addr;
> >>>               }
> >>>       }
> >>>
> >>>
> >>>
> >>> Конфигурация:
> >>>
> >>> uname -a
> >>> Linux server6.hostname.ru 2.6.18-128.1.10.el5xen #1 SMP Thu May 7
> >>> 11:07:18 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
> >>>
> >>> cat /etc/redhat-release
> >>> CentOS release 5.3 (Final)
> >>>
> >>> /usr/sbin/nginx -V
> >>> nginx version: nginx/0.6.38
> >>> built by gcc 4.1.2 20080704 (Red Hat 4.1.2-44)
> >>> configure arguments: --user=nginx --group=nginx
> >>> --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx
> >>> --conf-path=/etc/nginx/nginx.conf
> >>> --error-log-path=/var/log/nginx/error.log
> >>> --http-log-path=/var/log/nginx/access.log
> >>> --http-client-body-temp-path=/var/lib/nginx/tmp/client_body
> >>> --http-proxy-temp-path=/var/lib/nginx/tmp/proxy
> >>> --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi
> >>> --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx
> >>> --with-http_ssl_module --with-http_realip_module
> >>> --with-http_addition_module --with-http_sub_module
> >>> --with-http_dav_module --with-http_flv_module
> >>> --with-http_gzip_static_module --with-http_stub_status_module
> >>> --with-http_perl_module --with-mail --with-mail_ssl_module
> >>> --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
> >>> -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'
> >>> --add-module=/builddir/build/BUILD/nginx-0.6.38/nginx-upstream-fair
> >>
> >> Вообще, сам мастер-процесс ничего не обрабатывает и расти ему не с чего.
> >> У меня он обычно наименьший из всех процессов nginx'а и такого роста
> >> я не никогда не видел. Можно попробовать убрать nginx-upstream-fair.
> >>
> >>
> >> --
> >> Игорь Сысоев
> >> http://sysoev.ru
> >>
> >>
> >
> >
> >
> > --
> > С уважением, Одинцов Павел
> >
> 
> 
> 
> -- 
> С уважением, Одинцов Павел

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





More information about the nginx-ru mailing list