description
read and return a 28k image from memcache as an image/jpeg. that's all.
dynamic wsgi app; no parsing of path or anything, 10000 requests using
httperf. (python 2.5..)
lighttpd + fcgi (paste/swap/fork), around 180req/s max, around 13MB RAM
usage
aspen, around 650 req/s, results similar (+/- 20 req) with both 10
threads and 100 threads, around 5MB or so RAM usage, but memory usage
was around 200MB with 100 threads
wsgi reference server, around 770 req/s, around 6MB or so
(WOW!) so the wsgi ref + selector (this test was without selector)
actually does all i need, but aspen is really interesting. none of
these tests impacted the CPU noticably, and none of them crashed.
anyway to speed up aspen? it's amazing that the stock python web server
is so friggin fast
> REALLY fast and rough benchmark.
Thanks for this!
> anyway to speed up aspen?
There are definitely ways to speed up Aspen, which is in phase 2 of:
1. Make it run.
2. Make it right.
3. Make it fast.
We've had some initial work on optimization, and would love to
have your help here. Start with this thread:
http://groups.google.com/group/aspen-users/browse_frm/thread/97f1d654ae21d0ea
There are some older threads on benchmarks and such as well.
> it's amazing that the stock python web server
> is so friggin fast
Yeah, I'm impressed! It'd be interesting to dig into that one a
little more ...
chad
> Glad to help! I'm in exactly the same critical path with my
> app. ;-) I'm definitely going to use Aspen, at least for
> development, since it reloads!!! ;-) That's HUGE to me, you
> should sell it more!
Sweet! Thanks for the feedback and encouragement. :)
To trigger server restarts when you change selector.conf, put
something like this in your shim:
from os.path import join
from aspen import mode, paths, restarter
selector_conf = join(aspen.paths.__, 'etc', 'selector.conf')
if mode.DEBUGGING_OR_DEVELOPMENT:
restarter.track(selector_conf)
> as far as optimizations, here was my test app:
Good info, thanks. I usually use ab, first I've heard of httperf,
so thanks!
chad
P.S. Please "reply all" to keep on-list, if that's your intention.