httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Akins, Brian" <>
Subject Keepalives
Date Fri, 17 Jun 2005 13:11:36 GMT
Here's the problem:

If you want to use keepalives, all of you workers (threads/procs/whatever)
can become busy just waiting on another request on a keepalive connection.
Raising MaxClients does not help.

The Event MPM does not seems to really help this situation.  It seems to
only make each keepalive connection "cheaper."  It can still allow all
workers to be blocking on keepalives.

Short Term solution:

This is what we did.  We use worker MPM.  We wrote a simple modules that
keep track of how many keeapalive connections are active.  When a threshold
is reached, it does not allow anymore keepalives.  (Basically sets
r->connection->keepalive = AP_CONN_CLOSE).  This works for us, but the limit
is per process and only works for threaded MPM's.

Long Term solution:

Keep track of keepalives in the scoreboard (or somewhere else). Allow
admin's to set a threshold for keepalives:

MaxClients 1024
MaxConcurrentKeepalives 768

Or something like that.

Thoughts?  I am willing to write the code if this seems desirable.  Should
this just be another module or in the http core?

Brian Akins
Lead Systems Engineer
CNN Internet Technologies

View raw message