Re: скорость проксирования в связке nginx + proxy_pass + Tomcat

BestPersons.ru info at bestpersons.ru
Sun Apr 19 16:49:53 MSD 2009


Дополнение по конфигурации сервера:

nginx version: nginx/0.7.51
built by gcc 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)
configure arguments: --with-pcre=../pcre-7.9 --with-http_stub_status_module --with-http_realip_module --with-http_ssl_module

OpenSUSE 11 64 bit, kernel 2.6.27.7-9

server:/ # ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) 1746408
open files                      (-n) 900000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 16382
virtual memory          (kbytes, -v) 3320880
file locks                      (-x) unlimited


> Здравствуйте.

> Недавно столкнулся с проблемой, есть 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 уважением,
>   Александр.







More information about the nginx-ru mailing list