Nick Kew wrote:
Could that be done dynamically?  As in, make the max keepalive time a
function of how near the server is to running out of spare workers?

Sure. I'd have to poke around a bit to see the best way to do it. Speed is of utmost concern for us. I guess I could dynamically change r->server->keep_alive_max or r->server->keep_alive_timeout? Maybe make the timeout a "sliding" timeout something like:

/*calculate max_clients by querying mpm*/
/*is there a good, fast way to get idle workers?*/
/*store keep_alive_timeout somewhere*/

r->server->keep_alive_timeout = keepalive_timeout / (max_clients / idle_workers);


Thoughts?


Also, have you looked into making keepalive dependent on resource type?
E.g. use them for HTML docs - which typically have inline contents - but
not for other media types unless REFERER is a local HTML page?

Sounds horribly slow... Also, in our case, HTML and other content come from separate server pools. But most pages are made up of a few HTML pages. (You have to look at the HTML source to see what I mean).

Also, we have some "app" servers that often have all connections tied up in keepalive because the front ends open tons of keepalives (I have no direct control of them).

I was hoping for a more generic solution that would maybe help others. I'm sure there are others with similar situations.



--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies

Reply via email to