Apache MPM worker

Apache MPM worker
说明: 使网络服务器支持多线程多进程的多道处理模块 
状态: MPM 
模块名: mpm_worker_module 
源文件: worker.c 

概要
此多道处理模块(MPM)使网络服务器支持多线程多进程。 由于使用线程来处理请求,所以,可以处理巨量请求,而系统资源的开销小于基于进程的服务器。 但是,它也使用了多进程,每个进程又有多个线程,以获得基于进程的服务器的稳定性。

控制这个MPM的最重要的指令是,控制每个子进程允许建立的线程数的ThreadsPerChild指令,和控制允许建立的进程总数的MaxClients。

它是如何运作的
每个进程可以拥有的线程数量是固定的。 服务器会根据负载情况做增加或减少进程数量的调整。

单个控制进程负责子进程的建立。每个子进程可以建立由ThreadsPerChild指定的固定数量的线程。 然后,由独立的线程监听并处理到来的连接。

Apache总是试图维持一个备用的或者说空闲的服务线程池。 如此,客户端无须等待线程或进程的建立即可得到处理。 最初建立进程的数量由StartServers指令所决定。 其后,Apache检测所有进程中空闲线程的总数,并新建或结束进程使总数维持在MinSpareThreads和MaxSpareThreads所指定的范围以内。 由于这个过程是自动调整的,几乎没有必要修改这些指令的缺省值。 同时可以得到处理的客户端的最大数量取决于MaxClients指令,而进程建立的最大数量取决于ServerLimit指令。ServerLimit乘以ThreadsPerChild必须大于等于MaxClients。

worker MPM 中进程-线程控制的典型配置如下:

StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
ServerLimit         16
在Unix中,为了能够绑定端口80,父进程一般都是以root身份启动的, 其后,Apache以较低权限的用户建立子进程和线程。User和Group指令用于设置Apache子过程的权限。 虽然子进程必须对其提供的内容拥有读权限,但应该尽可能给予它较少的特权。 另外,除非使用了suexec, 否则,这些指令设置的权限将被CGI脚本所继承。

MaxRequestsPerChild 指令用于控制服务器建立和结束进程的频率。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值