apache调优

[url]http://my.oschina.net/renqingshigu/blog/678701[/url]
prefork和worker模式的比较

prefork模式使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。

worker模式使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。但worker MPM也由不完善的地方,如果一个线程崩溃,整个进程就会连同其所有线程一起"死掉".由于线程共享内存空间,所以一个程序在运行时必须被系统识别为"每个线程都是安全的"。



./configure --with-mpm=worker(prefork)

httpd -v

apachectl –l 显示当前工作模式

#mpm_perfork模块的默认配置



<IfModule mpm_prefork_module>

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的值。)

</IfModule>



StartServers,启动Apache时创建的子进程数。

MinSpareServers,处于空闲状态的最小子进程数。

MaxSpareServers,处于空闲状态的最大子进程数。

MaxClients,允许同时连接的最大请求数量。

MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量

ServerLimit是最大的进程数,MaxClients是最大的请求并发,所以他们的关系是MaxClients=ServerLimit*进程的线程数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值