httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ryan Bloom" <>
Subject RE: core_output_filter buffering for keepalives? Re: Apache 2.0 Numbers
Date Mon, 24 Jun 2002 17:52:41 GMT

> From: Brian Pane []
> Ryan Bloom wrote:
> >I think we should leave it alone.  This is the difference between
> >benchmarks and the real world.  How often do people have 8 requests
in a
> >row that total less than 8K?
> >
> >As a compromise, there are two other options.  You could have the
> >core_output_filter refuse to buffer more than 2 requests, or you
> >have the core_output_filter not buffer if the full request is in the
> >buffer.
> >
> In your second option, do you mean "full response" rather than "full
> request"?  If so, it's equivalent to what I was proposing yesterday:
> send the response for each request as soon as we see EOS for that
> I like that approach a lot because it keeps us from doing an extra
> mmap/memcpy/memunmap write before the write in the real-world case
> where a client sends a non-pipelined request for a small (<8KB) file
> over a keepalive connection.

I do mean full response, and that is NOT equivalent to sending the
response as soon as you see the EOS for that request.  EVERY request
gets its own EOS.  If you send the response when you see the EOS, then
you will have removed all of the buffering for pipelined requests.

You are trying to solve a problem that doesn't exist in the real world
IIUIC.  Think it through.  The problem is that if the page is <1k and
you request that page 8 times on the same connection, then Apache will
buffer all of the responses.  How often are those conditions going to
happen in the real world?

Now, take it one step further please.  The real problem is how AB is
measuring the results.  If I send 3 requests, and Apache buffers the
response, how is AB measuring the time?  Does it start counting at the
start of every request, or is the time just started at start of the
first request?  Perhaps a picture:

Start of request                            response received
0     5     10     15     20     25     30     35
-----------------------------------------------> request 1
            -----------------------------------> request 2
                          ---------------------> request 3
                                 --------------> request 4

Did the 4 requests take 35 seconds total, or 85 seconds?  I believe that
AB is counting this as 85 seconds for 4 requests, but Apache is only
taking 35 seconds for the 4 requests.


View raw message