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

