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