benchmark [rev]

0 views
Skip to first unread message

carl

unread,
Jan 21, 2007, 3:02:55 AM1/21/07
to aspen-users
REALLY fast and rough benchmark.

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

Chad Whitacre

unread,
Jan 21, 2007, 2:53:07 PM1/21/07
to carl, aspen-users
Carl,

> 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

Chad Whitacre

unread,
Jan 22, 2007, 8:54:51 AM1/22/07
to Carl Paetzel, aspen-users
Carl,

> 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.

Reply all
Reply to author
Forward
0 new messages