[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
wip-threaded-web-server
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) |
Hi,
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!
Andy
--
http://wingolog.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- wip-threaded-web-server,
Andy Wingo <=