Fwd: nginx performance on Amazon EC2
Jan-Philip Gehrcke
jgehrcke at googlemail.com
Thu Feb 21 08:00:07 UTC 2013
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 at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
More information about the nginx
mailing list