关于 Apache mpm(多路处理模块)

 

       MPM 有多个,常用的有:prefork、worker、event、winnt,其中前3个用于类unix系统,后者为Windows系统设计使用,其他如:netware、mpmt_os2 等暂时笔者还没用过。

       查看当前使用的MPM模块:apachectl –l

       比较: prefork MPM 使用多个子进程,但每个子进程只有一个线程,每个进程也就只能保持一个正常连接,prefork 只需要很小的配置指令,效益很高,适用与没有线程安全库的系统。   worker MPM 也使用多个子进程,但每个子进程可以有多个线程,可以维持多个请求连接,很节省内存容量,但线程共享内存空间,容易一起崩溃。

      所以,Prefork 速度领先 worker 是以CPU资源和内存容量为代价的,鉴于worker 的稳定性和兼容性不及prefork ,现在主流默认是 prefork ,而 event 是一个标准workerMPM的实验性变种,被设计成面向需要处理大量并发连接的场合,目前主要是实验阶段。

      vim  /etc/httpd/extra/httpd-mpm.conf

prefork:

<IfModule mpm_prefork_module> 
    StartServers             6
    MinSpareServers          6
    MaxSpareServers         10
    MaxRequestWorkers      500
    MaxConnectionsPerChild   400
</IfModule> 
MaxRequestWorkers 
最大进程数量 500
其他同下:
 

event:

<IfModule mpm_event_module> 
    StartServers            5
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      4000
    MaxConnectionsPerChild  2000
</IfModule> 

StartServers
      指定服务器启动时建立的子进程数量,默认一般都为:5

MinSpareThreads
      最小空闲线程数,默认值是"75"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。

MaxSpareThreads
      设置最大空闲线程数。默认值是"250"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大于等于MinSpareThreads加上ThreadsPerChild的和。

ThreadsPerChild
      每个子进程建立的常驻的执行线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了

MaxRequestWorkers

   最大线程数量

MaxRequestsPerChild

    每个子进程在其生存期内允许伺服的最大请求数量, 如果设置为0,子进程将永远不会结束,这里不设置为0 主要为了防止内存泄漏。

转载于:https://my.oschina.net/chenxu/blog/84655

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值