process-model.html revision 455a5f75c9935108a7ac1d50996f404e0553ac17
<HTML><HEAD>
<TITLE>Server Pool Management with MinSpareServers and MaxSpareServers</TITLE>
</HEAD><BODY>
<IMG SRC="/images/apache_sub.gif" ALT="">
<H3>Server Pool Management with MinSpareServers and MaxSpareServers</H3>
<HR>
<P>
We found that many people were using values for "MaxServers" either
too high or too low, and were hanging themselves on it. The model we
adopted is still based on long-lived minimal-forking processes, but
instead of specifying one number of persistant processes, the
webmaster specifies a maximum and minimum number of processes to be
"spare" - every couple of seconds the parent checks the actual number
of spare servers and adjusts accordingly. This should keep the number
of servers concurrently running relatively low while still ensuring
minimal forking.
<P>
We renamed the current StartServers to MinSpareServers, created
separate StartServers parameter which means what it says, and renamed
MaxServers to MaxSpareServers (though the old name still works, for
NCSA 1.4 back-combatibility). The old names were generally regarded
as too confusing.
<P>
The defaults for each variable are:
<PRE>
MinSpareServers 5
MaxSpareServers 10
StartServers 10
</PRE>
There is a compile-time limit of 150 absolute maximum number of
simultaneous children that will be allowed, which can be overruled by
"MaxClients", though we don't recommend changing that number unless
<OL>
<LI>You know you have the server resources to handle more
<LI>You use the machine for other purposes and must limit the amount of memory
Apache uses
</OL>
</body></html>