Preface: This is not a "how do I set StartServers" question.
I have a web server that has been running fine for years and last week we started using CloudFlare to help reduce probe and DDOS activity.
Since then, I have been getting Apache Error Logs full of the classic "Server seems busy" Adjust StartServers, etc etc message. I figure this is because CloudFlare is doing a lot of connections in the background - maybe for caching or something. So I slowly began to increase the number of StartServers, MinSpareServers, and the like but no matter what I set the values to, the server is still reporting that error. I have ensured that this server is indeed running mpm_prefork and I've restarted the server each time I have changed a value. These are the relevant values I have in the apache.cfg file:
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
StartServers 100
MinSpareServers 100
MaxSpareServers 150
MaxClients 1000
MaxRequestsPerChild 4000
</IfModule>
While the errors are being logged, load and traffic on the server appears light. I see maybe 70 concurrent connections at peak using netstat, server is using only 1.5GB out of 8GB RAM, CPU is twiddling it's thumbs, disk and network IO are low. And I've seen maybe 10to 20 server instances running (peak) according to
ps aux|grep apache2
Server response and page load times seem to be good regardless.
My question is why am I getting the server seems busy error while none of my values are less than 100, yet I'm only seeing typically 70 connections? It seems like Apache is ignoring the values in the apache2.conf file.