Jos*_*kin 5 configuration apache-2.2
这是我的 MPM 约束:
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 10
MaxSpareServers 10
MaxClients 10
MaxRequestsPerChild 2000
</IfModule>
Run Code Online (Sandbox Code Playgroud)
然而尽管如此,我目前有 20 多个 apache 进程在运行,在过去一两个小时内,有多达 40-50 个。MaxClient 和 MaxSpareServers 不应该控制进程数(即大约 10 个)吗?
有什么我想念的吗?
Apache 有不同的风格,其中最常见的两种是prefork和worker。prefork 模型会生成多个进程,但每个进程一次仅处理一个请求。另一方面,工作模型会生成多个进程,每个进程都有多个线程,每个线程一次处理一个请求。
根据您的发行版,您可能正在运行与您期望的模型不同的模型。您正在期待 prefork,但您确定这是正在运行的类型吗?要查找类型:
$ httpd -V 服务器版本:Apache/2.2.15(Unix) 服务器建成:2010年5月28日07:58:25 服务器模块魔数:20051115:24 服务器加载:APR 1.4.2、APR-Util 1.3.9 编译使用:APR 1.4.2、APR-Util 1.3.9 架构:32位 服务器 MPM:预分叉 螺纹:无 forked:是(可变进程数)
在这种情况下,我的Server MPM
是Prefork
,但你的可能不同。在我运行 Apache2 的 Debian 服务器上,它是Worker
:
# /usr/sbin/apache2 -V 服务器版本:Apache/2.2.9(Debian) 服务器 MPM:工作人员
在某些机器(例如 RedHat)上,同时存在 prefork 和辅助二进制文件(一个被调用httpd
,另一个被调用httpd.worker
或类似的东西)的情况并不少见。您可能需要仔细检查(使用ps
或top
或cat /etc/init.d/httpd
)实际正在启动的项目。
归档时间: |
|
查看次数: |
8871 次 |
最近记录: |