atom feed8 messages in ru.sysoev.nginxRe: nginx performance test
FromSent OnAttachments
Davide D'AmicoJan 18, 2010 1:34 pm 
merlin coreyJan 18, 2010 1:42 pm 
Davide D'AmicoJan 18, 2010 2:29 pm 
Cliff WellsJan 18, 2010 2:34 pm 
Michael ShadleJan 18, 2010 2:36 pm 
Momchil IvanovJan 18, 2010 6:42 pm 
Davide D'AmicoJan 20, 2010 3:56 am 
Tobia ConfortoJan 21, 2010 3:36 am 
Subject:Re: nginx performance test
From:merlin corey (merl@dc949.org)
Date:Jan 18, 2010 1:42:14 pm
List:ru.sysoev.nginx

On Mon, Jan 18, 2010 at 1:35 PM, Davide D'Amico <davi@contactlab.com> wrote:

Hi, I've a Dell R410 with dual Xeon E5530 with 8gb ddr so I would like to
test/discover nginx perfomances.

Here my config file /usr/local/etc/nginx/nginx.conf: orker_processes  10;

events {    accept_mutex off;    worker_connections  8192;    use kqueue; }

http {    server_names_hash_bucket_size 64;

   include             /usr/local/etc/nginx/mime.types;    default_type        application/octet-stream;

   log_format upstream '$remote_addr - $host - [$time_local] '                    '"$request" $status $body_bytes_sent "$http_referer" '                    '"$http_user_agent" "$http_x_forwarded_for"
[$upstream_addr]';

   access_log          /var/log/nginx/nginx-access.log;    error_log           /var/log/nginx-error.log;

   # spool uploads to disk instead of clobbering downstream servers    client_body_temp_path /var/spool/nginx-client-body 1 2;    client_max_body_size 32m;    client_body_buffer_size    2048k;

   sendfile            on;    tcp_nopush          on;    tcp_nodelay         off;

   keepalive_timeout   1;

   # proxy settings    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;    proxy_max_temp_file_size 0;

   proxy_connect_timeout      300;    proxy_send_timeout         300;    proxy_read_timeout         300;

   proxy_buffer_size          32k;    proxy_buffers              4 64k;    proxy_busy_buffers_size    64k;    proxy_temp_file_write_size 64k;    include             /usr/local/etc/nginx/upstream.conf;    include             /usr/local/etc/nginx/sites/*.conf; }

And a vhost is defined:

proxy_cache_path /usr/local/www/xxx/cache levels=1:2 keys_zone=XXX:10m
inactive=24h max_size=1g;

server {  ssl on;  ssl_certificate      /usr/local/etc/nginx/certs/xxx.pem;  ssl_certificate_key  /usr/local/etc/nginx/certs/xxx.key;  keepalive_timeout    70;

 listen kkk.kkk.kkk.kkk:443;  server_name xxx.*;  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;  proxy_store_access   user:rw  group:rw  all:r;

 proxy_connect_timeout      1200;  proxy_send_timeout         1200;  proxy_read_timeout         1200;

 access_log          /var/log/nginx/xxx-access.log upstream;  error_log           /var/log/nginx/xxx-error.log;

 error_page   500 502 503 504  /50x.html;  location = /50x.html {    root   /usr/local/www/nginx-dist;  }

 location ~ \.(gif|jpg|png)$ {    proxy_pass http://zzz.zzz.zzz.zzz:80;    proxy_cache XXX;    proxy_cache_valid 200 1d;    proxy_cache_use_stale error timeout invalid_header updating http_500 http_502
http_503 http_504;  }

 location / {    proxy_pass http://zzz.zzz.zzz.zzz:80;  } }

May I use httperf? jmeter? Using the config file I could estimate how many
static pages could I serve per period? Other statistics?

Thanks, d.

You may use whatever tools you like. I would recommend testing with as many as possible from external systems, and I like to use siege and httperf personally. You're also testing your OS (and your network, apparently) as well as nginx, so keep in mind you may have to do further tuning.

That said, I'm not sure exactly what it is you are intending to test with this setup. I would also note that NginX is not a forward proxy, and your configuration at least appears to be acting like one... so I don't think your "results" whatever they will be will be particularly useful to anyone but you.

And I always wonder when I see it in configurations... Did you REALLY have too long of a server_name that you had to change the hash bucket size? http://nginx.org/en/docs/http/server_names.html#optimization

-- Merlin