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