On Mon, Nov 19, 2012 at 10:39:17PM +1300, Dylan Jay wrote:
> zope is optimised to handle cpu bound and io bound requests differently.
> During request processing it will handle a single request per thread, however
> since threading in python isn't that good and due to request processing in
> zope being mainly CPU bound most people will run zope with single thread per
> CPU. However once a request is processed and if the result can be streamed
> from a blob file on disk, then this will be done asynchronously while the
> next request is being processed.

OK, that's interesting to know. So that applies to all responses, no just
delivery of static files ?

> I'm not sure but I suspect other back end servers might act similarly in that
> by the stage they are starting to deliver the response back to haproxy, most
> of the CPU bound operations are over and it would be a good time start
> processing the next request.

OK. In fact it would not be the first byte of data but the end of headers,
but that's similar.

At the moment I see no easy solution to do this, since haproxy counts the
established connections to apply the maxconn. But I think we can add another
concept of active request, which would be a request for which we did not
receive a response yet.

Possibly this could even be combined with the current maxconn mechanism.
This still needs some thoughts and some work.

Willy


Reply via email to