Increasing Memory Usage

Igor Sysoev is at rambler-co.ru
Thu Jul 30 08:25:11 MSD 2009


On Wed, Jul 29, 2009 at 11:21:36PM -0400, flute wrote:

> I'm using Nginx 0.7.61 with php-fpm(php 5.2.6) on Freebsd7.1-amd64???
> When i  starte nginx,the total memory usage beging Increase. Unitl used all memory.
> use top with sort size,i'm look at the each nginx work process used more than 400M memory.
> The solution is used 'kill -HUP'
> http://ylem.guanxi.koubei.com/ylem/get?version=1.0&enc=5tGKrFjjiG4DONY0WlR1IZ0oHeSR1ZHTVJEzyXe_yDhNYfzLaR.D0wpSXWZ_iAy_YJZ9nmwW2x55Lmp0Xly1A1s-
> why nginx used so many memory?
> 
> nginx.conf
> 
> 
> pid        /var/run/nginx.pid;
> worker_rlimit_nofile 200000;
> events {
>     worker_connections  20000;
>     use kqueue;
>     kqueue_changes 2048; 
> }
> 
> 
> http {
>     include       mime.types;
> 	log_not_found off;
>     default_type  text/html;
> 
>     log_format  main  '$remote_addr	$server_name	[$time_local]	'
>                       '"user:$cookie_user;PHPSESSID:$cookie_PHPSESSID"'
>                       '$request	$status	$body_bytes_sent	$request_time	$http_referer	'
>                       '"$http_user_agent"	$http_x_forwarded_for'	$proxy_host;
> 
>     access_log off;
> 	open_log_file_cache max=1000 inactive=20s min_uses=8 valid=1m;
> 	open_file_cache max=1000 inactive=20s; 
> 	open_file_cache_valid    30s; 
> 	open_file_cache_min_uses 8;
> 	open_file_cache_errors   on;
>     sendfile        on;
>     tcp_nopush     on;
>     tcp_nodelay	    on; 
> 
>     keepalive_timeout  30;
> 	server_names_hash_bucket_size 64;
> 	gzip_static on;
>     gzip off;
>     server_tokens off;
>     userid on;
>     userid_name user;
>     userid_path /;
>     userid_expires 365d;
>     recursive_error_pages on;
>     upstream test.com { 
> 		server 127.0.0.1:8080 weight=2; 
> 		server 192.168.0.10:8080 weight=4; 
> 	}
> 	client_body_buffer_size    128k;
>     server {
>         listen       80;
>         server_name  test.com;
> 	    location /serverinfo/ {
>         stub_status on;
>                 auth_basic "md";
>                 auth_basic_user_file /usr/local/etc/nginx.pw;
>     	}
> 		location / {
>               FileETag on;
>               etag_format "%X%X";

Probably because of etag module.

> 			if ($request_method = POST) { 
> 				error_page      404 = /phppost;
> 			}
> 			if ($uri ~* \.html$) {
> 				root   /data/www/html;
> 				return 0;
> 			}
> 			if ($uri ~* (\.(js|swf|ico|gif|jpg|jpeg|png|css|xml|mp3))$) {
> 				root   /data/www/html;
> 				expires 30d;
> 				return 0;
> 				error_page 404 = /error/404.html;
> 			} 
> 			error_page	404 = /phpreq;
> 		}

Also,
	if ($uri ~* (\.(js|swf|ico|gif|jpg|jpeg|png|css|xml|mp3))$) {

means that you should use

	location ~* (\.(js|swf|ico|gif|jpg|jpeg|png|css|xml|mp3))$) {

However, this is not cause of memory leak.

And probably, this contstruction does not work at all:

 		location / {
 			if ($request_method = POST) { 
 				error_page      404 = /phppost;
 			}
 			if ($uri ~* \.html$) {
 				root   /data/www/html;
 				return 0;
 			}

> 		location /phppost {
> 			internal;
>     		access_log  /logs/nginx/access.log  main;
> 			proxy_set_header   Cookie        "$http_cookie;Real_IP=$remote_addr";
> 			proxy_method POST; 
> 			proxy_connect_timeout 60;
> 			proxy_buffers 32 128k;
> 			proxy_ignore_client_abort on;
> 			proxy_pass http://127.0.0.1:8080;
> 		}	
> 
> 		location /phpreq {
> 			internal;
>     		access_log  /logs/nginx/access.log  main;
> 			proxy_set_header   Cookie        "$http_cookie;Real_IP=$remote_addr";
> 			proxy_buffers 128 32k;
> 			proxy_connect_timeout 600;
> 			proxy_read_timeout 600;
> 			proxy_send_timeout 600;
> 			#proxy_busy_buffers_size 20480k;
> 			proxy_headers_hash_max_size 8192;
> 			proxy_ignore_client_abort on;
> 			proxy_pass http://test.com;
> 		}
> 		location /10/ {
> 			proxy_pass http://192.168.0.10:8080/;
> 		}      
> 		location /11/ {
> 			proxy_pass http://127.0.0.1:8080/;
> 		}
> 
>         error_page   500 502 503 504  /50x.html;
>         location = /50x.html {
>             root   /usr/local/nginx/html;
>         }
> 
>     }
> }
> 
> 
> 
> Posted at Nginx Forum: http://forum.nginx.org/read.php?2,4598,4598#msg-4598
> 

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





More information about the nginx mailing list