#LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_worker_module modules/mod_mpm_worker.so
四、修改MPM模块配置,设置最大连接数(并发数量)
如果是使用宝塔面板安装的apache服务器,直接在apache管理的性能调整里设置即可:
1、启用MPM模块配置文件
Apace安装目录/conf/extra![](https://www.hualigs.cn/image/61dba891ed8ee.jpg) /``httpd-mpm.conf,这个
文件主要用于进行MPM模块的相关配置。
2、在默认情况下,Apache的MPM模块配置文件并没有启用,因此我们需要在httpd.conf
文件中启用该配置文件,如下所示:
Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf
去掉 Include conf/extra/httpd-mpm.conf 前面的注释符号"#"(如果前面有#号的话)
3、在启动MPM模块配置文件后,我们就可以使用文本编辑器打开httpd-mpm.conf
配置文件,在该配置文件中有许多<IfModule>
配置节点,如下图所示:
4、 此时,我们就需要根据当前Apache服务器所使用的MPM模块(也就是Apache的工作模式),来修改对应<IfModule>
节点下的参数配置:
五、mpm_winnt模块的配置
#由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置。
ThreadsPerChild 150 #推荐设置:小型网站=1000 中型网站=1000~2000 大型网站=2000~3500
MaxRequestsPerChild 3000 #推荐设置:小型网站=10000 中型或大型网站=20000~100000
ThreadsPerChild 这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了。一方面因为mpm_winnt不能启动多个进程,所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的,数目太大的反而会变慢,因此需要综合均衡一个合理的数值。
mpm_winnt工作模式下,ThreadsPerChild的默认值是64,最大值是1920,这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。
MaxRequestsPerChild 这个参数表示每个子进程能够处理的最大请求数,即同时间内子进程数目,设置为零表示不限制。
mpm_winnt工作模式下,MaxRequestsPerChild的默认值就是0,官方参考手册中不建议设置为0,主要基于下面两点考虑:
- 可以防止内存泄漏(偶然的)无限进行,从而耗尽内存;
- 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
六、 mpm_perfork和mpm_worker模块的配置
1、mpm_perfork模块
StartServers 5 #推荐设置:小型网站=默认 中型网站=20~50 大型网站=50~100
MinSpareServers 5 #推荐设置:与StartServers保持一致
MaxSpareServers 10 #推荐设置:小型网站=20 中型网站=30~80 大型网站=80~120
MaxClients 150 #推荐设置:小型网站=500 中型网站=500~1500 大型型网站=1500~3000
MaxRequestsPerChild 0 #推荐设置:小型网站=10000 中型或大型网站=10000~500000
此外,还需额外设置ServerLimit参数,该参数最好与MaxClients的值保持一致。
2、mpm_worker模块
StartServers 2 #推荐设置:小型网站=默认 中型网站=3~5 大型网站=5~10
MaxClients 150 #推荐设置:小型网站=500 中型网站=500~1500 大型网站=1500~3000
MinSpareThreads 25 #推荐设置:小型网站=默认 中型网站=50~100 大型网站=100~200
MaxSpareThreads 75 #推荐设置:小型网站=默认 中型网站=80~160 大型网站=200~400
ThreadsPerChild 25 #推荐设置:小型网站=默认 中型网站=50~100 大型网站=100~200
MaxRequestsPerChild 0 #推荐设置:小型网站=10000 中型或大型网站=10000~50000
#此外,如果MaxClients/ThreadsPerChild大于16,还需额外设置ServerLimit参数,ServerLimit必须大于等于 MaxClients/ThreadsPerChild的值。
StartServers 启动Apache时创建的子进程数。
MinSpareServers 处于空闲状态的最小子进程数。所谓空闲子进程是指没有正在处理请求的子进程,如果当前空闲子进程数少于MinSpareServers
,那么Apache将以最大每秒一个的速度产生新的子进程,只有在非常繁忙机器上才需要调整这个参数,此值不宜过大。
MaxSpareServers 处于空闲状态的最大子进程数。只有在非常繁忙机器上才需要调整这个参数,此值不宜过大,如果你将该指令的值设置为比MinSpareServers
小,Apache将会自动将其修改成MinSpareServers+1
。