nginx performance on Amazon EC2
mex
nginx-forum at nginx.us
Thu Feb 21 07:29:43 UTC 2013
hello,
is the setup of your vmware similar to you ec2 - instance? i talk esp. about
RAM/CPU-power
here.
do you have a monitoring on your instances, checking for load/ram-zusage,
iowait etc?
maybe you should start your ec-test with less than 500 concurrent
connections and work up
to the point that instance starts to fail.
> [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
looks like your django-app shuts down or isnt capable of handling that
ammount of connections.
oh, and you shouldnt expect a distant instance to have the same performance
as a
machine in your local net.
Rakan Alhneiti Wrote:
-------------------------------------------------------
> 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-stat
> ic-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
> >
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,236391,236408#msg-236408
More information about the nginx
mailing list