Can someone explain to me the apache log “[info] server seems busy”

apache-2.2

This is the log:

[info] server seems busy, (you may need to
increase StartServers, or Min/MaxSpareServers), spawning 8 children,
there are 17 idle, and 37 total children

[info] server seems busy, (you may need to increase StartServers, or
Min/MaxSpareServers), spawning 8 children, there are 18 idle, and 37
total children

[info] server seems busy,
(you may need to increase StartServers, or Min/MaxSpareServers),
spawning 8 children, there are 18 idle, and 37 total children

[info] server seems busy, (you may need to increase
StartServers, or Min/MaxSpareServers), spawning 8 children, there are
19 idle, and 37 total children

[info]
server seems busy, (you may need to increase StartServers, or
Min/MaxSpareServers), spawning 8 children, there are 18 idle, and 38
total children

[info] server seems busy,
(you may need to increase StartServers, or Min/MaxSpareServers),
spawning 8 children, there are 15 idle, and 39 total children

The message isn't very clear to me and apache2 documentation doesn't help either.

What are those children, why is it spawning 8, what are idle children and what are total children? What is it trying to tell me?

Best Answer

The children are threads or more abstractly 'workers' that are used to accept() and process connections.

It is spawning 8 because Apache HTTPd has detected an average load that would be better served by more workers. It is 'faster' to 'pre-spawn' these workers. IE: If there are 8 requests being handled and a 9th comes in, Apache must spawn a 9th worker to accept and process the connection. This is a relatively expensive process (the spawning). Apache is just dynamically adjusting its worker pool to the load.

Idle children are children that are waiting to begin working on a connection. total children reflects the size of the entire pool. Here you have approximately 20 'working' workers (non-idle).

Related Topic