httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Kallen <>
Subject the requirements of keep-alive support
Date Mon, 25 May 1998 17:30:05 GMT

De-lurking here for just a sec....

I just wanted to share my experience with keep alives in a few different
circumstances.  On an SGI Challenge S w/ 128 mb ram, turning on keep
alives always resulted in the pool getting run upto MaxClients with our
request rate of around 50-60 req/sec and before long actually running
slower because of tied up processes, the scoreboard would be just about
wall to wall K's. This would be the case with a keepalivetimeout of 30
seconds or 3 seconds (yes, the IRIX 6.2 patches are up to date).  When I
doubled the installed ram to 256 mb, I could support a much larger process
pool (I upped max clients from 110 to 192, this server also runs a
mod_perl'd daemon separately so I leave room for it in ram :) and turn
keep alives on.  What I find odd is that the number of processes active in
the pool seems really high for the request rate I'm handling, it's much
higher than if I have keepalives off. Granted, responses feel quicker, our
pages are pretty image heavy and they seem to be coming up faster but the
extra performance definitely seems to be paid for with additional ram

Incidentally, on a FreeBSD box with 128 megs of ram running a mod_perl
httpd, keepalives are counterproductive unless the request rate is less
than 30 requests per second, that machine's MaxClients sweet spot seems to
be around 115.

I guess I was expecting the required number of processes in the pool to
decrease with keep-alives on but that's not been the case.  In both
instances, the OS is tuned specifically for Web serving and perform
admirably without keep-alives.  I'm curious what other folks with busy
servers are doing for keep-alive support (parameters in httpd.conf).  I'm
assuming it's buggy clients stringing along server processes longer than
they should, so as far as declining keep-alives to misbehaving clients,
this is the setup:

BrowserMatch Java1.0 force-response-1.0
BrowserMatch JDK/1.0 force-response-1.0
BrowserMatch "MSIE 4\.0b2;" downgrade-1.0 force-response-1.0
BrowserMatch "MSIE 3\.01;" downgrade-1.0 force-response-1.0

...if there's a better one, I'd be happy to here about it.  There's
nothing in the tuning docs about optimizing use of keep-alives, just
the old stuff about FIN_WAIT_2's and buggy clients.  If folks respond
to me privately, I'll be glad to write up something for the docs.  If
folks want to respond publicly, I'll just go back over here and re-assume 
lurk mode.

BTW, all of our httpd's are 1.3b6 :)

Ian Kallen	
	Director of Technology and Web Administration
		GameSpot Incorporated

View raw message