[hunchentoot-devel] Hunchentoot and threads

Robert Synnott rsynnott at gmail.com
Sun Nov 16 19:40:38 UTC 2008


On 16 Nov 2008, at 19:08, Hans Hübner wrote:

> Hi Cyrus,
>
> when you see worker threads accumulate, do you also see that there is
> a large number of connections to Hunchentoot that are not being
> closed?  Or are there just threads, but no connections?  Are you
> running Hunchentoot behind a proxy/frontend, or standalone?  How many
> dead workers did you see?
>
> NB:  I do certainly think that it is possible to write threaded web
> servers that work, I just believe that it is hard, in many respects.
> Threads, in my personal opinion, are not the best hammer to solve the
> I/O multiplexing problem that needs to be solved in a web server.
> Certainly, the unbounded worker thread creation strategy that
> Hunchentoot uses is not suitable for servers that see load peaks,
> which is why I recommend not using threaded Hunchentoot for such
> sites.
>
> That said:  I do have stability issues with my non-threaded
> Hunchentoot installation on FreeBSD, too.  I use a multi threaded
> SBCL, but run Hunchentoot in a single thread behind squid.  In some
> situations, no new connections are being accepted for no apparent
> reasons, but I failed to properly analyze the problem last time it
> happened as the customer was already nervous.  I have seen this happen
> two times in the last four months, on a moderately busy site. Thus,
> the problem may actually not be related to Hunchentoot's threads usage
> (I'm running non-threaded, you run threaded), but could as well be
> located in SBCL's thread implementation of FreeBSD, in usocket or
> somewhere else.
>
> Any further data points would help getting down to the bottom of this.
>
> As for future work on Hunchentoot:  We do have the new connection
> manager class in place which is meant to support the implementation of
> thread pools.  Thread pools would help putting limits on the number of
> threads created, helping with getting through load peaks.  I do not
> personally need such a connection manager, but rather want to spend
> some time on making Hunchentoot be able to use single threaded I/O
> multiplexing using select/kpoll/whatever.
>
> -Hans

On this, I've had no trouble with multi-threaded Hunchentoot for a  
moderate traffic site (~10 requests per sec, generally a few threads  
working at a time), on Linux.
Rob



More information about the Tbnl-devel mailing list