Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Падение производительнос ти nginx
- To: nginx-ru@xxxxxxxxx
- Subject: Падение производительнос ти nginx
- From: "zortexx" <nginx-forum@xxxxxxxx>
- Date: Tue, 22 Feb 2011 14:30:12 -0500
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=dwr4kd1+mya5fbLxUe5jMYY8rWVBLe0zYk6DxguiASg=; b=lVhQthYi5fsXvX21Y+4uDUxsa3n4CO8bd3idGmFT5IuzrfJnO7nnwDDmjPK7BTJMy/tGX3HeWM4VfVXTrYmPksmBA6PkRLtVGOARQGfkvIxYunyTwEyEs8cSTllvPSIk;
Приветствую всех!
Никогда не думал, что придется писать
сюда. До этого момента nginx никогда не
подводил, да и сейчас нет уверенности,
что дело в нем. Вобщем, ситуация: nginx в
качестве прокси для apache2 mpm-prefork (fastcgi
гораздо медленнее, на низких нагрузках,
а больших не предвидится) и mod_mem_cache.
Также установлен MySQL 5.1 с поддержкой MyISAM
и InnoDB с большим объемом оперативной
памяти выделенной под кэширование
таблиц. Но дело точно не в нем, так как
многочисленные тесты показывают, что
скорость обработки максимального
комплекса запросов составляет меньше
10мс. В итоге, среднее время генерации
страницы составляет 2 секунды.
В какой-то момент времени я начал
экспериментировать с различными
директивами nginx. В частности, после
добавления директив "timer_resolution 100ms;", "use
epoll;", "sendfile on;", "tcp_nopush on;", "keepalive_timeout 5;" и
"tcp_nodelay on;" - время генерации страниц
упало до 0,4 секунды. Сначала была мысль,
что это кэш, но для тестирования я
менял данные в базе напрямую и страницы
формировались с корректными данными.
Однако, после перезагрузки сервера все
вернулось на круги своя, - 2 секунды, на
легких страницах - 1,5 секунды.
В процессе настройки nginx никакие другие
сервисы не подвергались
конфигурированию. Визуально, да и по
дате редактирования конфигурационные
файлы те же, на которых недавно было 0,4
секунды.
Собственно, вопрос обычный - куда
копать?
PS.: Я понимаю, что nginx только отдает
статику и скидывает на бэкенд
генерацию контента. Но кроме nginx ничто
не было затронуто. И, по всей видимости
это какой-то необъяснимый глюк
производительности apache2, но все же
хотелось услышать мнения экспертов.
Привожу свои конфиги:
cat /etc/nginx/nginx.conf
user www-data;
worker_processes 2;
worker_priority -5;
timer_resolution 100ms;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
use epoll;
}
http {
upstream backend {
server 127.0.0.1:8080;
}
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log off;
sendfile on;
tcp_nopush on;
keepalive_timeout 5;
tcp_nodelay on;
gzip on;
gzip_buffers 4 8k;
gzip_comp_level 3;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml
application/xml application/xml+rss text/javascript;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
cat /etc/nginx/sites-enabled/example.org
server {
listen 80;
server_name example.org;
root /var/www/example.org;
index index.php;
location / {
proxy_pass http://backend;
include /etc/nginx/proxy.conf;
open_file_cache max=1024 inactive=600s;
open_file_cache_valid 2000s;
open_file_cache_min_uses 1;
open_file_cache_errors on;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
access_log /var/log/nginx/example.org_access.log;
error_log /var/log/nginx/example.org_error.log;
error_page 403 /403.html;
error_page 404 /404.html;
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
root /var/www/example.org/;
}
## Disable viewing .htaccess & .htpassword
location ~ /\.ht {
deny all;
}
}
cat /etc/nginx/proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
Posted at Nginx Forum:
http://forum.nginx.org/read.php?21,177531,177531#msg-177531
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|