what is the meaning of Apache busy workers and idle workers? how the statistic of them help me to figure out performance problem with my server?
1 Answers
If you have only very few or none idle workers it means Apache is using all the processes it is allowed to use and new incoming requests have to wait for older requests to finish before they can be handled. In this case, increasing the maximum allowed processes in your configuration file might help with performance under certain circumstances.
This is true if your system has reserves to handle additional apache processes. Each of them will need memory, CPU time and disk I/O.
If you don't have these reserves, increasing the MaxClients
might be even contraproductive, as more processes will have to "fight" for the resources and it might be that reducing the number of maximum clients will improve performance if you already hit some bottleneck.
- 97,248
- 13
- 177
- 225
-
Thanks for the explanation. the graph above is for the Apache stats in non peak time. in peak time, the idle workers reach zero. how do I increase the number of idle workers? is it by increasing MaxRequestsPerChild parameters? assume that I have enough resource. – usef_ksa Mar 03 '11 at 00:20
-
`MaxRequestsPerChild` tells Apache how many requests one child process may handle before it is killed. Maximum concurrent clients is set with the `MaxClients` option, which is the number you will have to increase if you have zero idle workers. The reason is that Apache tries to keep at least `MinSpareServers` as idle so they can react immediately, but this will fail if already `MacClients` server processes exist. – Sven Mar 03 '11 at 12:10