1

I've seen this question asked a few times but it hasn't had any real answer; so I've decided to post my resolution.

The below info message can be seen in the apache error.log:

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

1 Answer 1

2

The resolution seems to be quite obvious; increase the StartServers until it goes away. While true, it is bad practice to arbitrarily increase the value unless you understand the implications and if the increased value is actually going to help.

I was reading over the httpd source code and it says the following:

/*
 * idle_spawn_rate is the number of children that will be spawned on the
 * next maintenance cycle if there aren't enough idle servers.  It is
 * doubled up to MAX_SPAWN_RATE, and reset only when a cycle goes by
 * without the need to spawn.
 */

Further in the source the actual error is logged when:

if (retained->idle_spawn_rate >= 8) {
                ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf, APLOGNO(00162)
                    "server seems busy, (you may need "
                    "to increase StartServers, or Min/MaxSpareServers), "
                    "spawning %d children, there are %d idle, and "
                    "%d total children", retained->idle_spawn_rate,
                    idle_count, total_non_dead);
            }

So what this means is; this error is thrown when the number of children to be spawned at the next cycle is greater than 8 because there aren't enough servers to handle requests.

So how can you fix it?

Each time this error is thrown you'll see something like spawning 16 children; this means that 16 children had to be spawned because there was a lack of servers to handle requests. Basically, increase your StartServers by the amount of spawning children until the error goes away. You can also increase the Min/MaxSpareServers by this amount instead.

You must log in to answer this question.