nginx performance on Amazon EC2

Rakan Alhneiti rakan.alhneiti at gmail.com
Thu Feb 21 05:04:52 UTC 2013


Hello,

Yes my vm machine is working on my local network. I am referring to it
rather so show that it performs better & no issues appear there.
I tried both Amazon EC2 small instance & a linode 2048 instance and both
give the exact same result as well.

When doing apache benchmark, i can see the following in my nginx error log:

[error] 4167#0: *27229 connect() to unix:///tmp/pyapp.socket failed (11:
Resource temporarily unavailable) while connecting to upstream, client:
127.0.0.1, server: mysite.com

and

upstream prematurely closed connection while reading response header from
upstream, client: 127.0.0.1, server: mysite.com

Other than that, there's nothing in django error log but here's what i can
see in uwsgi's daemon log:

Wed Feb 20 21:59:51 2013 - writev(): Broken pipe [proto/uwsgi.c line 124]
during GET /api/nodes/mostviewed/9/?format=json (127.0.0.1)
[pid: 4112|app: 0|req: 34/644] 127.0.0.1 () {30 vars in 415 bytes} [Wed Feb
20 21:59:42 2013] GET /api/nodes/mostviewed/9/?format=json => generated 0
bytes in 8904 msecs (HTTP/1.0 200) 3 headers in 0 bytes (0 switches on core
0)
Wed Feb 20 21:59:51 2013 - writev(): Broken pipe [proto/uwsgi.c line 124]
during GET /api/nodes/mostviewed/9/?format=json (127.0.0.1)
[pid: 4117|app: 0|req: 1/645] 127.0.0.1 () {30 vars in 415 bytes} [Wed Feb
20 21:59:46 2013] GET /api/nodes/mostviewed/9/?format=json => generated 0
bytes in 5021 msecs (HTTP/1.0 200) 3 headers in 0 bytes (0 switches on core
0)

and stuff like:
Wed Feb 20 20:01:01 2013 - uWSGI worker 1 screams: UAAAAAAH my master
disconnected: i will kill myself !!!

What do you guys think?

Thanks alot



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 7:33 AM, David | StyleFlare <david at styleflare.com>wrote:

>  Really you would have to do this test on 2 amazon servers and then see
> if one was more performant.
> Then you can assume something is wrong.
>
> Based on the configs everything looks right.
>
> The fact that your vmware server is better performing, is really not
> saying much. Its really hard to directly compare.
>
> I would presume so many other factors.
>
> Is the vmware box on a local network?
>
>
>
>
>
> On 2/20/13 11:05 PM, Anoop Alias wrote:
>
>
>
> On Thu, Feb 21, 2013 at 1:43 AM, Rakan Alhneiti <rakan.alhneiti at gmail.com>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 -b 25000 --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 {
>>     listen 80;
>>     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/;
>>         expires 30d;
>>     }
>>
>>     location /media/ {
>>         alias /www/python/apps/pyapp/media/;
>>         expires 30d;
>>     }
>>
>>     location / {
>>         uwsgi_pass unix:///tmp/pyapp.socket;
>>         include uwsgi_params;
>>         proxy_read_timeout 120;
>>     }
>>
>>     # 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:      500Time taken for tests:   21.954 secondsComplete requests:      5000Failed requests:        126
>>    (Connect: 0, Receive: 0, Length: 12
>>  6, Exceptions: 0)Write errors:           0Non-2xx responses:      4874Total transferred:      4142182 bytes
>> HTML transferred:       3384914 bytesRequests 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:      1000Time taken for tests:   1.094 secondsComplete requests:      5000Failed requests:        0Write errors:           0Total transferred:      30190000 bytes
>> HTML transferred:       28930000 bytesRequests 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
>>
>
>
> Is there any data in the nginX error logs?
>
>
>  --
> *Anoop P Alias*
> GNUSYS <http://gnusys.net>
>
>
> _______________________________________________
> nginx mailing listnginx at nginx.orghttp://mailman.nginx.org/mailman/listinfo/nginx
>
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20130221/722b47b5/attachment-0001.html>


More information about the nginx mailing list