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