Weird Memleak problem

Igor Sysoev is at rambler-co.ru
Mon Aug 31 22:49:37 MSD 2009


On Sun, Aug 30, 2009 at 09:45:55PM -0400, Paul wrote:

> I had nginx 0.6.32 and just upgraded to 0.7.61 and still have the same 
> memleak issue.
> What happens is as soon as I start nginx, it starts using ram and 
> continues to use more and more and more over a 16 hour period is 
> consumes 8gb ram and all the swap and then errors out because it cant 
> use any more.
> This never used to happen until recently and the only difference at all 
> in the config is more server entries.
> 
> here's the config:
> 
> user  www www;
> 
> worker_processes 16;
> error_log  logs/error.log;
> worker_rlimit_nofile 65000;
> 
> events
> {
> 
>        worker_connections 40000;
> }
> 
> ####### HTTP SETTING
> http
> {
>        access_log off;
>        log_format alot '$remote_addr - $remote_user [$time_local]  '
>                    '"$request" $status $body_bytes_sent '
>                    '"$http_referer" "$http_user_agent" "$http_accept" 
> $connection';
>        sendfile       on;
>        tcp_nopush     on;
>        tcp_nodelay    on;
>        keepalive_timeout  0;
>        output_buffers 16 128k;
>        server_tokens off;
>        ssl_verify_client off;
>        ssl_session_timeout  10m;
> #       ssl_session_cache shared:SSL:500000;
> include /usr/local/nginx/conf/mime.types;
> default_type application/octet-stream;
> 
> #       cache_max_size 24;
> 
>        gzip on;
>        gzip_min_length 512;
>        gzip_buffers 64 32k;
>        gzip_types text/plain text/html text/xhtml text/css text/js;
> 
>        proxy_buffering on;
>        proxy_buffer_size 32m;
>        proxy_buffers 16 32m;

These settings allocate 32M buffer for each proxied request.

>        proxy_busy_buffers_size 64m;
>        proxy_temp_file_write_size 2048m;
>        proxy_intercept_errors on;
>        proxy_ssl_session_reuse  off;
>        proxy_read_timeout 120;
>        proxy_connect_timeout 60;
>        proxy_send_timeout 120;
>        client_body_buffer_size 32m;

This setting allocates 32M buffer for each request with body.

>        client_header_buffer_size 64k;
>        large_client_header_buffers 16 64k;
>        client_max_body_size 16m;
> 
> 
>        server
>        {
>                listen 1.2.3.4:80;
>                location /
>                {
> 
>                        proxy_pass http://3.4.5.6;
>                        proxy_redirect http://3.4.5.6/     
> http://$http_host/;
>                        proxy_redirect default;
>                        proxy_set_header        Host            
> $host;          ##Forwards host along
>                        proxy_set_header        X-Real-IP       
> $remote_addr;   ##Sends realip to customer svr
>                        proxy_set_header        X-Forwarded-For 
> $remote_addr;   ##Sends realip to customer svr
>                }
>        }
>        server
>        {
>                listen 1.2.3.4:443;
> 
>                ssl on;
>                ssl_certificate         
> /usr/local/nginx/conf/whatever.com.crt;
>                ssl_certificate_key     
> /usr/local/nginx/conf/whatever.com.key;
>                ssl_protocols SSLv3;
>                ssl_ciphers HIGH:!ADH;
>                ssl_prefer_server_ciphers on;
>                location /
>                {
>                        proxy_pass https://3.4.5.6;
>                        proxy_redirect https://3.4.5.6/     
> http://$http_host/;
>                        proxy_redirect default;
>                        proxy_set_header        Host            
> $host;          ##Forwards host along
>                        proxy_set_header        X-Real-IP       
> $remote_addr;   ##Sends realip to customer svr
>                        proxy_set_header        X-Forwarded-For 
> $remote_addr;   ##Sends realip to customer svr
>                        proxy_set_header X-FORWARDED_PROTO https;
>                }
>        }
> 
> And these server entries repeated about 60 or so times and that's it.
> When it was around 40 we never had a memleak issue.
> 
> This is on Linux, kernel is 2.6.25
> 
> Thanks
> 
> 
> -- 
> GloboTech Communications
> Phone: 1-514-907-0050 x 215
> Toll Free: 1-(888)-GTCOMM1
> Fax: 1-(514)-907-0750
> paul at gtcomm.net
> http://www.gtcomm.net 
> 

-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list