Benchmark of Python web servers
nichol.as
Benchmark of Python web servers
1–10 of 12 posts
Re: Benchmark of Python web servers
#2I admit that getting your head around configuration for the first time is an hour or two of staring at documentation, but once you get past that you'll love how simple it is. Getting it running under Apache via mod_wsgi is also a refreshing breeze.
Where Django is great for building websites, the beautiful transparency of CherryPy is excellent for building webservices (no cryptic errors).
We're using CherryPy with Routes, CouchDB, couchdb-python, couchdb-lucene, and lxml for a web annotation project and we couldn't be happier.
Re: Benchmark of Python web servers
#3I have been following the development of gevent lately, I am glad it did so well in these benchmarks.
Re: Benchmark of Python web servers
#4Re: Benchmark of Python web servers
#5* Some of the servers tested aren't designed to interact directly with clients over a network, and are meant instead to run proxied over a local socket behind something else like nginx. The benchmark is inconsistent in whether it actually does this, though, which makes the numbers useless for comparison purposes.
* Several of these servers use preforking architectures which assume the ability to have multiple workers available to service requests. Yet the benchmark deliberately limited them to only one worker, which makes the numbers useless for gauging actual peformance under concurrent load.
Re: Benchmark of Python web servers
#6Also limiting its use to one worker is constraining any possibilities for concurrency in its responses. (grainbows built over gunicorn and using gevent or eventlet is better for that).
Some other servers in the tests have same kind of specifications.
Re: Benchmark of Python web servers
#7It's true. I'm not sure if the first 30 seconds of any technical screencast can get any better than this:
http://www.zetadev.com/software/testosterone/screencast.html
Re: Benchmark of Python web servers
#8That said, database access, network latency, caching, etc. are so important that you might as well just use the framework you like, then tune if required.
Re: Benchmark of Python web servers
#9Unfortunately there are several problems being pointed out with this benchmark: * Some of the servers tested aren't designed to interact directly with clients over a network, and are meant instead to run proxied over a local socket behind something else like nginx. The benchmark is inconsistent in whether it actually does this, though, which makes the numbers useless for comparison purposes. * Several of these server…
* Concurrent requests more than doubled
* Response times dropped 75%
* Error rate dropped 75%
It's amazing what a difference it makes to actually run something the way it was designed to run...
Re: Benchmark of Python web servers
#10Unfortunately there are several problems being pointed out with this benchmark: * Some of the servers tested aren't designed to interact directly with clients over a network, and are meant instead to run proxied over a local socket behind something else like nginx. The benchmark is inconsistent in whether it actually does this, though, which makes the numbers useless for comparison purposes. * Several of these server…
And now there are updated numbers in the graphs (labeled "gunicorn-3w") for gunicorn, based on running it the way it's meant to be run (on a socket with more than one worker). The results: * Concurrent requests more than doubled * Response times dropped 75% * Error rate dropped 75% It's amazing what a difference it makes to actually run something the way it was designed to run...