发布网友 发布时间:2022-04-26 15:46
共1个回答
热心网友 时间:2022-05-01 13:39
作为Apache的核心模块它针对不同的操作系统提供了多个不同的MPM模块,例如:mpm_beos、mpm_event、mpm_netware、mpmt_os2、mpm_prefork、mpm_winnt、mpm_worker。
如果条件允许,我们可以根据实际需求将指定的MPM模块编译进我们自己的Apache中(Apache的源码是开放的,允许用户自行编译)。不过,如果在
编译时我们没有选择,Apache将按照如下表格根据不同的操作系统自行选择对应的MPM模块,这也是Apache针对不同平台推荐使用的MPM模块。
Windows mpm_winnt Windows系统
Unix/Linux mpm_winnt Unix/Linux系统
BeOS mpm_beos 由Be公司开发的一种多媒体操作系统,官方版已停止更新。
Netware mpm_netware 由NOVELL公司推出的一种网络操作系统
OS/2 mpmt_os2 一种最初由微软和IBM共同开发的操作系统,现由IBM单独开发(微软放弃OS/2,转而开发Windows)
块下的默认配置:
mpm_winnt模块
#由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置。<IfMole mpm_winnt_mole>
ThreadsPerChild 150 #推荐设置:
小型网站=1000 我的中型网站(抄底 chaodiquan.com)=1000~2000 这个数字对于服务器还说还是比较轻松的 如果你是大型网站=2000~3500MaxRequestsPerChild 0 #推荐设置:小=10000 中或大=20000~100000</IfMole>123456
对应的配置参数作用如下:
ThreadsPerChild:每个子进程的最大并发线程数。
MaxRequestsPerChild:每个子进程允许处理的请求总数。如果累计处理的请求数超过该值,该子进程将会结束(然后根据需要确定是否创建新的子进程),该值设为0表示不*请求总数(子进程永不结束)。
该参数建议设为非零的值,可以带来以下两个好处:
1. 可以防止程序中可能存在的内存泄漏无限进行下去,从而耗尽内存。
2. 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
注意:在以上涉及到统计请求数量的参数中,对于KeepAlive的连接,只有第一个请求会被计数。
mpm_perfork模块
<IfMole mpm_prefork_mole>
StartServers 5 #推荐设置:小=默认 中=20~50 大=50~100MinSpareServers 5 #推荐设置:与StartServers保持一致MaxSpareServers 10 #推荐设置:小=20 中=30~80 大=80~120 MaxClients 150 #推荐设置:小=500 中=500~1500 大型=1500~3000MaxRequestsPerChild 0 #推荐设置:小=10000 中或大=10000~500000</IfMole>1234567此外,还需额外设置ServerLimit参数,该参数最好与MaxClients的值保持一致。# StartServers: 数量的服务器进程开始# MinSpareServers: 最小数量的服务器进程,保存备用# MaxSpareServers: 最大数量的服务器进程,保存备用# MaxRequestWorkers: 最大数量的服务器进程允许开始# MaxConnectionsPerChild: 最大连接数的一个服务器进程服务
希望可以帮助到你的啊!