ПРОЕКТЫ 


  АРХИВ 


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: memory leak by nginx


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: memory leak by nginx
  • From: Vitaliy Okulov <vitaliy.okulov@xxxxxxxxx>
  • Date: Thu, 29 Jan 2009 17:13:14 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=oBykmDEkG5JcgpvX/viM6mZWE7cGyH6Z96rRGdBa8Bc=; b=jv5Fm+fj0QsNhUgE9D2Tz9MvNLPumB0HbuW4rol/VJmwHYlyz3r6gK0wOgoZSqjPH3 OU1yPfUvNy65Z2ep7999FiAv8spsHSVFhIDGBV5bgvTQll86ZVxRa7eB1IYS9asFf9m2 jpg7ACHBAb+1O5J8Aut0+TGY2oMasm5pwuzZc=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=aBQW11xI0BEJzokycHX3K51++HQpxhlaDSCOi4FK+R6d7DncCeujZM4DtfR1jaxaF6 OBQPuBIvjv8jxs3y93XDTRqIRAPCju3FdR2qBiPmdYoKf+8JwuarKRcUdPh6gJlmk5pb gpZIO4Zw/qa2D91p1naKgGLr758H5CWoTjgyY=
  • In-reply-to: <CC50C4A0-8010-48C4-A239-BD5D226AF89A@xxxxxxxxxxxxxx>
  • References: <b37fe17d0901290218g690a6403r1ea0a5a72e732a78@xxxxxxxxxxxxxx> <CC50C4A0-8010-48C4-A239-BD5D226AF89A@xxxxxxxxxxxxxx>

В сервере 8 гигов памяти + 8 своп. При посещении 5-10 запросов в секунду не думаю что дело в буферах.

2009/1/29 Alexey V. Karagodov <kav@xxxxxxxxxxxxxx>
полный конфиг покажите

у Вас вероятно буфера слишком большие ... прошу понять меня правильно ...

On 29.01.2009, at 13:18, Vitaliy Okulov wrote:

Обновился до nginx 0.6.34 c 0.6.32. Заметил утечки памяти на 1 сервере. ОС
FreeBSD 6.3. Параметры сборки:

nginx version: nginx/0.6.34
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt=-I
/usr/local/include --with-ld-opt=-L /usr/local/lib
--conf-path=/usr/local/etc/nginx/nginx.conf
--sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
--error-log-path=/var/log/nginx-error.log --user=www --group=www
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
--http-log-path=/var/log/nginx-access.log --with-http_addition_module
--with-http_dav_module --with-http_flv_module --with-http_realip_module
--with-http_ssl_module --with-http_stub_status_module --with-http_sub_module

Клиентов на данном сервере мало, примерно 5-10 коннекто в секунду. Динамики
нет, то есть обслуживается только статика. После рестарта nginx память
освобождается. В dmesg есть информация:

swap_pager_getswapspace(2): failed
pid 38158 (nginx), uid 80, was killed: out of swap space
swap_pager_getswapspace(16): failed

Так что проблема явно в nginx. Из особенностей могу отметить использование
большой базы geoip адресов.

В чем может быть проблема? Как ее решить?

Конфигурационный файл:

user  www;
worker_processes  8;
worker_rlimit_nofile  200000;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  /var/log/nginx/error.log  info;

#pid        logs/nginx.pid;


events {
  use    kqueue;
  worker_connections  1024;
}


http {
  include       mime.types;
  default_type  application/octet-stream;

  index index.shtml index.html;

  log_format  main  '$remote_addr - $remote_user [$time_local] $request '
                    '"$status" $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

  access_log  /var/log/nginx/access.log  main;

  sendfile        on;
  #tcp_nopush     on;

  keepalive_timeout  65;
  client_max_body_size 60m;
умножить на 8 вокеров, уже 480 метров ...




  #gzip  on;

  error_page 404          /404.html;
  error_page   500 502 503 504 /50x.html;

  include /usr/local/etc/nginx/upstream.conf;
  include /usr/local/etc/nginx/geoip.conf;
  include /usr/local/etc/nginx/vhosts.d/*.conf;


  server {
      listen       *:80;
      server_name  xxx;

      location / {
         root   /usr/local/www/nginx;
          index  index.html index.htm index.shtml;
      }

      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   /usr/local/www/nginx-dist;
      }

      location /nginx_status {
          stub_status on;
          access_log   off;
          allow xxx;
          deny all;
      }
  }
}





 




Copyright © Lexa Software, 1996-2009.