ПРОЕКТЫ 


  АРХИВ 


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: too high cpu load



On Mon, 7 Nov 2005, Alexander Burnos wrote:

Есть nginx 0.3.7, который проксирует запросы к бэкенду.
Все это живет на debian 2.6.11.9 ядре, P-IV 3.0 HT

Собрано с:
--with-http_ssl_module
--without-http_charset_module
--without-http_ssi_module
--without-http_autoindex_module
--without-http_geo_module
--without-http_fastcgi_module
--without-http_userid_module
--with-http_stub_status_module
--with-rtsig_module

При этом он почему-то отжирает непозволительно много процессора.
top выглядит так:

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
25894 httpd     16   0  7084 5352 1592 S 31.0  0.3   0:11.35 nginx
14085 server1   17   0  550m 299m  16m S 25.2 14.8 609:20.18 backend
25895 httpd     15   0  6404 4740 1592 R 19.4  0.2   0:10.62 nginx
23738 httpd     16   0  394m  15m 3072 S  5.8  0.8   0:23.35 httpd
14987 server1   17   0  572m 214m  19m S  3.9 10.6  58:42.15 backend
23422 httpd     16   0  394m  16m 3072 S  1.9  0.8   0:25.95 httpd
26040 root      15   0  2260 1036  736 R  1.9  0.0   0:00.02 top

status:

Active connections: 66
server accepts handled requests
324586 324586 324568
Reading: 63 Writing: 2 Waiting: 1

И это не самый пик нагрузки nginx.

Конфиг таков:

user  httpd httpd;
worker_processes  5;

#error_log  logs/error.log;
#pid        logs/nginx.pid;


events {
   connections  1024;
   use epoll;
}


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

   #sendfile        on;
   #tcp_nodelay    on;

   keepalive_timeout  0;

   #gzip  on;

   server {
       listen           1.1.1.1:443;
       server_name      servername.com
       ssl              on;
       ssl_certificate /path/to/cert
       ssl_certificate_key /path/to/cert_key

       #charset koi8-r;

       access_log  off;

       rewrite ^/w3c(.*) /image/w3c$1  last;


       location / {
           root   html;
           index  index.html index.htm;
       }

       location /status {
        stub_status on;
        allow my.ip.address;
        deny all;
       }

       location  /image/ {
        proxy_set_header  X-Forwarded-Host 'myhost.com';
        proxy_set_header  X-Forwarded-For        $remote_addr;
        proxy_pass   http://backend.ip:port/;
       }

       # deny access to .htaccess files
       location ~ /\.ht {
           deny  all;
       }
   }
}

Пробовал использовать rtsig, в этом случае master процесс берет около
11% cpu, но переодически "выстреливает" в top занимая 80-90%.

А idle на машине есть ?

Кто может подсказать, почему так? И в какую сторону смотреть?
С apache подобных фокусов не было.

А что из себя представляют /images/ ?

И пара советов (хотя они, конечно, не уменьшат существенно занятость
процессора):

1) при использовании SSL лучше разрешать keep-alive:
    keepalive_timeout  75;

2) "rewrite ^/w3c(.*) /image/w3c$1  last;" лучше записать так:

   location /w3c {
       rewrite ^(.*)$  /image$1  last;
   }


Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.