On Oct 13, 2005, at 7:15 AM, Sune Kirkeby wrote:
On 9/29/05, Jacob Kaplan-Moss <[EMAIL PROTECTED]> wrote:
To pick one example: in a dynamic serving situation, KeepAlive is
your friend; [ snip a lot ]
Hmmm... HTTP Keep-Alive? Then either I'm misunderstanding
you, or everything you say is exactly opposite to what I remember
reading elsewhere and would expect...
That's been my experience, but to be fair I've not really done any
research into it. What I've experienced, though, leads me to believe
that KeepAlive minimizes memory consumption at the expense of
limiting throughput. That is, you're more likely to hit
MaxConnections sooner with KeepAlive as request children are being
kept around waiting for more connections from the same client. When
I turn off KeepAlive (or lower the timeout drastically) I can get
higher throughput which I assume is a result of connection "slots"
being freed up more quickly. Obviously throughput only increases
until the server runs out of RAM and starts swapping -- which is why
KeepAlive seems better for dynamic sites: the size of each Apache
process is much larger with Django loaded, so reusing children makes
more sense.
If you've seen evidence that runs counter to what I've stated above
I'd be *very* much interested in reading it; as I said I'm far from
an expert in the Apache-tuning field, so the more I can learn the
better.
Jacob