Apache MPM设置

大别阿郎 发布于 2015/02/12 12:29
阅读 345
收藏 0

新安装一台服务器,Apache反应慢,发现有很多人用下载软件,同时开几十个进程来下载。于是想在Apache的层面来限制。我使用的是prefork MPM。认真地研究../conf/extra/httpd-mpm.conf的设置。设置如下:

<IfModule mpm_prefork_module>
    ServerLimit              600
    StartServers             3
    MinSpareServers          50
    MaxSpareServers         100
    MaxRequestWorkers       500
    MaxConnectionsPerChild  10
</IfModule>

因为每个人访问网站,其进程会显示在top中,应该也是ps -ef |grep httpd | wc -l看到的数量。

如果不设置ServerLimit(最大值是200000,20万,牛),这个数量最大是MaxRequestWorkers。而它缺省值是256。

问题就在于这个 MaxConnectionsPerChild,文档中说是maximum number of connections a server process serves before terminating。从字面意思上讲,即“一个子进程结束前可以建立的最大连接数”。是不是可以理解为一个人在KeepAliveTime期间可以打开的网页数量呢?有不少优化的帖子建议这个MaxConnectionsPerChild(原名为MaxRequestsPerChild,现在仍然可以使用)设为20000。

而这个KeepAliveTime在2.4版的Apache中已经看不到了。它的数量是5,5秒内可以打开2万个网页,是要这样理解吗?所以,我把它设为10,是不是就可以避免超多线程连接上来下载呢?请高手解惑。

 

加载中
返回顶部
顶部