如何解决 Apache 服务器日志中的‘[info] 服务器似乎很忙’?

如何解决 Apache 服务器日志中的‘[info] 服务器似乎很忙’?

我见过几次有人问过这个问题,但一直没有得到真正的答案;所以我决定发布我的解决方案。

info在 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

解决方法似乎很明显;增加StartServers直到它消失。虽然确实如此,但随意增加该值是一种不好的做法,除非您了解其含义并且增加的值确实有帮助。

我正在阅读 httpd 源代码,它说明以下内容:

/*
 * 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.
 */

进一步在源代码中,实际错误记录在以下情况下:

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);
            }

所以这意味着; 这个错误被抛出由于没有足够的服务器来处理请求,所以下一个周期要生成的子进程数大于 8。

那么如何解决此问题?

每次出现此错误时,您都会看到类似 的内容spawning 16 children;这意味着由于缺少服务器来处理请求,因此必须生成 16 个子进程。基本上,将您的进程数增加StartServers生成子进程数,直到错误消失。您也可以将 增加这个Min/MaxSpareServers数量。

相关内容