[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: Andy Wingo
Subject: wip-threaded-web-server
Date: Tue, 07 Feb 2012 23:27:00 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)


The wip-threaded-web-server branch adds support for i/o threads to the
web server.

This work slows down the web server from around 7K reqs/s on my
dual-core Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz to about 5K reqs/s.

I think it's simply the playing with the mutexes and cond variables, and
not the thread switching.  I get this overhead even if I run in a
nonthreaded mode (either manually setting #:threads? #f, or compiling
--without-threads), but still pushing read and write requests onto async
queues.  Dunno.  I have some hopes that we can gain back some of that
loss by working on our "fat mutexes".

Also, the implementation is a bit nasty in places.

Anyway, this work should improve performance dramatically on real web
servers, because slow clients won't stall the system.  I'm going to try
it out on my web site and see.  Currently the handlers are still run
serially; we probably need to add a new run-server command to enable
multithreading for web handlers.

Comments welcome!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]