Everyone of us talk frequently about the web browser when it comes to web. We in this era are enjoying web services like twitter , google ,facebook using these browser.But the beauty of these services lies more on the web servers which are actually running them and making them reliable and fast enough to be enjoyed.The time when the facebook open sourced its web server tornado source , this debate has actually come in existence that “which is the best web server out their “.. although their are many contenders from nginx to apache , apache to cherokee and cherokee to tornado but the big thing is which is actually the best.Having read the following article I decided to experiment upon this on my own.
Here’s the chart, taken from Wikipedia:
Server | Setup | Requests per Second |
---|---|---|
Tornado | nginx ,4 frontends | 8213 |
Tornado | 1 single threaded frontend | 3353 |
Django | Apache/mod_wsgi | 2223 |
web.py | Apache/mod_wsgi | 2066 |
CherryPy | standalone | 785 |
I have Intel dual core2.0 processor with the 1 GB RAM, I have used Jmeter for load testing.And the result are really stunning tornado leads the race with maximum load whereas apache and nginx are far behind for static pages . for 1000 user apache consumes 385 Mb whereas nginx around 357mb and for another 1000 users Apache extends to 486mb wheras nginx settles at 415mb .for maximum loads nginx run fines for 7859 user for static content whereas Apache has made the system unstable for around 5000 concurrent users.But taking into consideration the user friendliness and small deployments the apache is really nice , it is easy to be configured and also almost suit every application type. Also it is easy scalable as a lot of documentation is available.Nginx is a great choice if you ant to deploy python based web site.Tornado on the other hand is more application oriented if anyone has got the tricks to modify it ROCK’s…..