您的位置:首页 > 运维架构 > Apache

【Window下apache服务设置最大连接数】

2015-09-17 15:35 501 查看
实验了几天,对于windows环境下apache服务器最大连接数的设置如何开展终于有点眉目

(1)首选查看apache的工作模式

windows下的查看apache的工作模式命令:httpd -l 列出的全部内容如下所示:

core.c

mod_win32.c

mpm_winnt.c

http_core.c

mod_so.c

mpm_winnt.c是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。

mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache,下面详细来说明一下。

(2)mod_win32.c工作模式,对应的优化内容如下

在httpd.conf文件中,加入以下内容

<IfModule mpm_winnt.c>

ThreadsPerChild 250

MaxRequestsPerChild 5000

</IfModule>

ThreadsPerChild

这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。

mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。

MaxRequestsPerChild

该参数表示每个子进程能够处理的最大请求数, 即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0.

官方参考手册中不建议设置为0, 主要基于两点考虑:

(1) 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存;

(2) 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: