Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Re[6]: скорость прокс ирования в связке nginx + proxy_pass + Tomcat
On 19.04.2009, at 23:28, BestPersons.ru wrote:
Здравствуйте, Alexey.
"$request_time, время обработки запроса в секундах с точностью до
миллисекунд;"
показывает от 1 ms до 98 ms, в среднем около 7 ms
это соответствует действительности?
а что говорит по этому поводу апаче/томкат? сколько он тратит времени
на запрос?
возможно это долго и следует попробовать увеличить кол-во вокеров
о_О ...
Вы писали 19 апреля 2009 г., 18:57:51:
в лог можно записать
http://sysoev.ru/nginx/docs/http/ngx_http_log_module.html#log_format
можно на стороне бекенда наверно тоже
On 19.04.2009, at 18:29, BestPersons.ru wrote:
Здравствуйте, Alexey.
А как это можно измерить, менять исходники nginx?
Вы писали 19 апреля 2009 г., 17:45:08:
а время "общения" с бекендом на один запрос можешь измерить?
т.е. сколько времени нгинх тратит на обработку всего запроса
клиента
On 19.04.2009, at 17:10, BestPersons.ru wrote:
Здравствуйте, Alexey.
Nginx не кладет ответы на диск в моем случае.
т.е. совсем нет файликов в proxy_temp_path ?
Если сделать 1 воркер, то скорость падает до 1400 запросов в
секунду.
Увеличение буфферов прокси ситуацию не меняют.
Вы писали 19 апреля 2009 г., 16:37:30:
есть подозрение, что нгинх кладёт часть или большую часть
проксированных ответов на диск, ибо в память не влазит
3 вокера здесь много, 1 - максимум
можно попробовать увеличить буфера прокси, но тогда нгинх будет
просто
неприлично много кушать памяти
On 19.04.2009, at 16:04, BestPersons.ru wrote:
Здравствуйте.
Недавно столкнулся с проблемой, есть Apache Tomcat 6, отдает
страницы со скоростью 5500 req/sec (100 параллельных клиентов)
Если перед ним поставить nginx на той же машине, то скорость
падает до
2000 req/sec.
Получается nginx с proxy_pass более чем в 2 раза снижает
скорость,
мне
это кажется странным.
Так и должно быть?
Крутил различные параметры конфига nginx - не помогает. В
error.log
ошибок при бенчмарке не появляется. Бенчмарк запускается по
100 Mb
сети с
другой машины, в сеть не упирается.
Бенчмарк вызывается следующей коммандой: httperf --server
192.168.0.10 --port 80 --uri / --num-conn 100 --num-call 100 --
rate
100 --timeout 5
Машинка: AMD Athlon 64 X2 Dual Core Processor 5200+, 2Gb RAM
nginx.conf:
user nobody;
worker_processes 3;
worker_rlimit_core 2000M;
error_log logs/error.log;
pid logs/nginx.pid;
events {
worker_connections 50000;
use epoll;
}
http {
server_names_hash_max_size 10000;
server_names_hash_bucket_size 256;
client_max_body_size 5m;
log_format IP '$remote_addr';
server_tokens off;
reset_timedout_connection on;
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 70;
access_log off;
recursive_error_pages on;
upstream bpbackends {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://bpbackends;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
}
C уважением,
Александр.
|