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

Reply via email to