too high cpu load
Igor Sysoev
is at rambler-co.ru
Mon Nov 7 22:21:41 MSK 2005
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
More information about the nginx-ru
mailing list