我已经安装了带有 worker mpm 的 Apache,尽管配置到位,但似乎有太多活动进程。我将在下面详细介绍配置:
StartServers 2
MinSpareThreads 10
MaxSpareThreads 25
ThreadsPerChild 25
MaxClients 150
根据这些设置,我们最多应该看到 1 个 Apache 控制进程 (uid:root) 和 6 个 Apache 客户端进程 (uid:www)。这是由于 MaxClients/ThreadsPerChild 造成的。
但是,我看到总共有 1 个 Apache 控制进程和 9 个 Apache 客户端进程。
init
-- apache2(root)
-- -- apache2(www)
-- -- apache2(www) -- 1 个线程
-- -- apache2(www) -- 26 个线程
-- -- apache2(www) -- 26 个线程
init
-- apache2(www) -- 2 个线程
-- apache2(www)
-- apache2(www)
-- apache2(www)
我们没有养成重新启动 Apache 或服务器的习惯,并且每天会重新加载 2-3 次以添加新的 VHOST。
有人能告诉我这可能是什么原因造成的吗?enter code here
答案1
MaxClients 不确定子进程的数量——子进程的数量乘以 ThreadsPerChild 的数量决定了 MaxClients 的最大可接受值。
为了满足 6 个子进程和 150 个最大客户端的值,请使用以下设置:
StartServers 2
ServerLimit 6
MinSpareThreads 10
MaxSpareThreads 35
ThreadsPerChild 25
MaxClients 150
还请注意,我修改了 MaxSpareThreads 值。从文档:
MaxSpareThreads 值的范围是有限制的,Apache 会根据以下规则自动修正给定的值:
* mpm_netware wants the value to be greater than MinSpareThreads. * For worker the value must be greater or equal than the sum of MinSpareThreads and ThreadsPerChild.