Do you run the benchmark program on the same virtual machine as the web stack?? For yielding conclusive results, you certainly don't want to make ab, nginx, and all other entities involved compete for the same CPU.

If yes, try running ab from a different machine in the same network (make sure your network is not the bottle neck here) and compare your results again.

Cheers,

Jan-Philip



On 02/20/2013 09:13 PM, Rakan Alhneiti wrote:
Hello,

I am running a django app with nginx & uwsgi on an amazon ec2 instance
and a vmware machine almost the same size as the ec2 one. Here's how i
run uwsgi:


|sudo uwsgi-b25000  
--chdir=/www/python/apps/pyapp--module=wsgi:application--env 
DJANGO_SETTINGS_MODULE=settings--socket=/tmp/pyapp.socket--cheaper=8  
--processes=16   --harakiri=10   --max-requests=5000   
--vacuum--master--pidfile=/tmp/pyapp-master.pid--uid=220  --gid=499|

& nginx configurations:


|server{
     listen80;
     server_name test.com

     root/www/python/apps/pyapp/;

     access_log/var/log/nginx/test.com.access.log;
     error_log/var/log/nginx/test.com.error.log;

     
#https://docs.djangoproject.com/en/dev/howto/static-files/#serving-static-files-in-production
     location/static/  {
         alias  /www/python/apps/pyapp/static/;
         expires30d;
     }

     location/media/  {
         alias  /www/python/apps/pyapp/media/;
         expires30d;
     }

     location/  {
         uwsgi_pass unix:///tmp/pyapp.socket;
         include uwsgi_params;
         proxy_read_timeout120;
     }

     # what to serve if upstream is not available or crashes
     #error_page 500 502 503 504 /media/50x.html;
}|

Here comes the problem. When doing "ab" (ApacheBenchmark) on both
machines i get the following results: (vmware machine being almost the
same size as the ec2 small instance)

*Amazon EC2:*

nginx version: nginx version: nginx/1.2.6

uwsgi version:1.4.5


|Concurrency  Level:       500
Time  takenfor  tests:    21.954  seconds
Complete  requests:       5000
Failed  requests:         126
    (Connect:  0,  Receive:  0,  Length:  126,  Exceptions:  0)
Write  errors:            0
Non-2xx  responses:       4874
Total  transferred:       4142182  bytes
HTML transferred:        3384914  bytes
Requests  per second:     227.75  [#/sec]  (mean)
Time  per request:        2195.384  [ms]  (mean)
Time  per request:        4.391  [ms]  (mean,  across all concurrent requests)
Transfer  rate:           184.25  [Kbytes/sec]  received|

*Vmware machine (CentOS 6):*

nginx version: nnginx version: nginx/1.0.15

uwsgi version: 1.4.5


|Concurrency  Level:       1000
Time  takenfor  tests:    1.094  seconds
Complete  requests:       5000
Failed  requests:         0
Write  errors:            0
Total  transferred:       30190000  bytes
HTML transferred:        28930000  bytes
Requests  per second:     4568.73  [#/sec]  (mean)
Time  per request:        218.879  [ms]  (mean)
Time  per request:        0.219  [ms]  (mean,  across all concurrent requests)
Transfer  rate:           26939.42  [Kbytes/sec]  received|

As you can see... all requests on the ec2 instance fail with either
timeout errors or "Client prematurely disconnected". However, on my
vmware machine all requests go through with no problems. The other thing
is the difference in reqs / second i am doing on both machines.

What am i doing wrong on ec2?




_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx


_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to