Abaixo está um link para um ótimo artigo que ajudará a determinar as configurações corretas para o mpm_prefork_module.
A idéia é executar um script que mostrará quanto de memória é consumida por cada processo do Apache, usando essas informações para definir as configurações.
Script: link
MaxClients e amp; ServerLimit.
unzip ap.sh.zip
sh ap.sh
The output will be something like that:
Apache Memory Usage (MB): 1372.6 Average Proccess Size (MB): 54.9041
Try to execute it several times to compare the numbers; good results will be shown when server is under a heavy load. Now when you know average amount of memory consumed by Apache and total amount of memory of your server, it is possible to calculate value to be used for MaxClients setting.
For example, if in average one your Apache process consumes 50MB RAM and server RAM is 2GB, and you want to leave 512MB for the rest processes, then: MaxClients = (2GB – 512MB)/50MB = 30.72 ~ 30.
ServerLimit is, as I understand, the same thing, but while MaxClient setting can be changed on the go without a need to restart Apache, for new ServerLimit value to take effect Apache restart is required.
MaxClients should always be <= ServerLimit. To make it easy, I set ServerLimit = MaxClients calculated by above formula.