Multiple Django and Flask Sites with Nginx and uWSGI Emperor
tghw.com
tghw.com
http://oddments.org/scalestack-vs-node-vs-twisted-vs-eventle...
Obviously this doesn't tell us much; a better comparison would be nice.
They're both very fast and microbenchmarks won't show anything very relevant.
As you can read in the above blog post there are some issues, especially when handling very big GET requests (you need to set a bigger internal buffer) and when handling uploads (you need to extend the default send and receive timeouts). Other than this, uWSGI rocks and I highly recommend it.
Although the first thing I noticed when I clicked the link was that it looks like it's a scraped design of Svbtle.
edit: spelling.
I was more surprised that the author claims this as a new feature. I feel like I heard about this over a year ago... In any case, excellent write-up.
Servers do matter - memory usage, throughput, error rate, concurrent request handling etc. If the options are to use a faster server, or hunt down your code for bottlenecks, the choice is clear. Even if I modify my code to be faster, a faster server doesn't hurt.
This "benchmarks are useless" meme is overdone. "Hello World" benchmarks don't matter, but if a server is significantly faster on my real world application, why would that benchmark be meaningless for me?
I currently run DUNG (nginx/gunicorn), perhaps I will run nginx/uWSGI first and compare performance. I will ping you if I get around to it.
The great thing about uWSGI/Nginx over Gunicorn/Nginx is that Nginx speaks the uwsi protocol natively[2], whereas with Gunicorn Nginx acts as a proxy.
Also, in my experience (2 years with gunicorn, 1 with uwsgi in prod), uwsgi is more stable, uses less memory, has better management and configuration tools and even lets you run multiple Python apps under the same intepreter (multitenancy) [3].
[1] http://www.peterbe.com/plog/fcgi-vs-gunicorn-vs-uwsgi
[2] http://wiki.nginx.org/HttpUwsgiModule
[3] http://projects.unbit.it/uwsgi/wiki/TipsAndTricks
(Edit: formatting)