Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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.

share|improve this question
    
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 '12 at 15:23

2 Answers 2

up vote 4 down vote accepted

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.

share|improve this answer
    
ok, I think I get it :) –  John Hunt Oct 2 '12 at 15:28
    
When load drops of and stays down will it also kill processes until it reaches MinSpareServer ? –  OZZIE Mar 6 '14 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. –  Christopher Perrin Mar 6 '14 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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.