I've scoured the web but I can't find out what MaxSpareServers are in Apache MPM prefork..

The MaxSpareServers directive sets the desired maximum number of idle child server processes. An idle process is one which is not handling a request. If there are more than MaxSpareServers idle, then the parent process will kill off the excess processes.

Great, but what causes a spareserver to be created? More importantly, when does a spare server go away? I understand that minspareservers are created gradually after the server is started..

How do maxspareservers relate to maxclients?

Basically I'm at a bit of a loss on how best to configure Apache.. there's a lot of documentation out there but it isn't that clear.

Thanks, John.

  • This is explained quite well in the Apache doc (httpd.apache.org/docs/2.2/mod/prefork.html), along with the hint that the default is usually a good starting point that shouldn't be changed if not really necessary.
    – Sven
    Oct 2, 2012 at 15:23

2 Answers 2


If somehow there are less spare server processes than MinSpareServers, Apache will attempt to create spare server processes until they are at least MinSpareServers.

If you have load on your server, Apache will create more server processes up to MaxClients. As long as they are in use they will not be killed, but if the load drops, Apache will start killing the processes until there are at most MaxSpareServer processes left.

  • ok, I think I get it :)
    – John Hunt
    Oct 2, 2012 at 15:28
  • When load drops of and stays down will it also kill processes until it reaches MinSpareServer ?
    – OZZIE
    Mar 6, 2014 at 10:01
  • I'm not sure but I think it doesn't. I believe that the lower bound is for when you set the maximum requests for a server. Mar 6, 2014 at 18:06

You can assume maxClients as max servers apache will spawn.

There is a different, maxSpareServers dictate how much maximum number of apache child process will be kept.

MaxClients directive will dictate how much apache will spawn child process to handle spike in request.

So when there is decreasing in number of request, apache will start kill the child server until it reach maxSpareServers not minSpareServers.

Since there is overhead on creating new child process, you should set maxSpareServers quite high if you're expecting your server to handle a lot of requests. But do not set it too high, because if you have fewer requests, there are a lot of apache processes on the server doing nothing except occupying the memory.

Basically set it between minSpareServers and maxSpareServers.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .