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.
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.
The defaults for each variable are:
MinSpareServers 5 MaxSpareServers 10 StartServers 10There 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