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