Fwd: nginx performance on Amazon EC2

Rakan Alhneiti rakan.alhneiti at gmail.com
Thu Feb 21 22:39:13 UTC 2013


Hello,

Thank you all for your support.

*Mex: *
*1) is the setup of your vmware similar to you ec2 - instance? i talk esp.
about RAM/CPU-power here.*
Yes, i've setup the vmware machine to be 1.7 G in ram and 1 core just like
the small ec2 instance.

*2) do you have a monitoring on your instances, checking for
load/ram-zusage, iowait etc?*
What goes on here is that my CPU usage per uwsgi process is around 13% and
server load starts to get much higher. MySQL operations usually take 6-8 ms
which are optimized and not slowing the app down. once the load starts
rising, the app slows down and more connections start to fail.

*Jan-Philip:*
*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.
*Yes, on both machines i try to run ab on the same machine. So that i am
profiling the app from within taking away any network latency that can
affect the response rate. I tried running the test from a linode machine to
an EC2 instance... same results.

Again, thank you for your support, i am persevering on this until i find
out what the issue is.

Best Regards,

*Rakan AlHneiti*
Find me on the internet:
 Rakan Alhneiti <http://www.facebook.com/rakan.alhneiti> |
@rakanalh<https://twitter.com/rakanalh>
 |  Rakan Alhneiti <http://www.linkedin.com/in/rakanalhneiti> |   alhneiti

----- GTalk rakan.alhneiti at gmail.com
----- Mobile: +962-798-910 990



On Thu, Feb 21, 2013 at 11:00 AM, Jan-Philip Gehrcke <
jgehrcke at googlemail.com> wrote:

> 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<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<http://mailman.nginx.org/mailman/listinfo/nginx>
>>
>>
> ______________________________**_________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/**mailman/listinfo/nginx<http://mailman.nginx.org/mailman/listinfo/nginx>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20130222/96514f86/attachment-0001.html>


More information about the nginx mailing list