最新中国福彩网双色球开奖结果 行榜

“Apache MPM worker”的原理与默认设置

科技2023-03-12作者:meilin
首页 > 科技

正文

该多处理模块(MPM)综合了多进程多线程服务器应用。通过使用线程应对服务请求,能在系统资源少的情况下处理大量请求。它通过在每个进程下保持许多线程,仍然保留住了基于流程服务器的稳定性。

控制MPM最重要的指令是“ThreadsPerChild”,通过控制启动的线程最大数量,控制每个进程和“MaxClients”部署的线程数。

工作原理

单一控制进程(父)负责开始子进程。每个子进程按照“ThreadsPerChild”指令产生固定数量的服务线程,以及一个监听连接并将它们传输到服务线程加工处理的监听线程。

Apache总是尝试保持一个备用池或空闲服务器线程,随时准备应对服务请求。用这种方式,客户端不需要在请求得到应答之前等待产生新线程或进程。最初启动的进程数量由“StartServers”指令设定。在操作期间,Apache评估所有进程的闲置线程,然后forks或杀死进程,将数量保持在“MinSpareThreads”和“MaxSpareThreads”限定的范围内。

由于这一过程的自我调节能量非常强,几乎没必要修改这些指令的默认值。同时服务的客户端由“MaxClients”确定。活跃子进程的最大数量由“MaxClients” 指令除以“ThreadsPerChild”指令决定。

有两个指令设定活跃子进程数量和子进程里的服务器线程数量,并且只能通过完全停止服务器,然后重新启动才能改变。“ServerLimit”是活跃子进程的上限,必须大于或等于“MaxClients”指令除以“ThreadsPerChild”指令的值。“ThreadLimit”是服务器线程的上限,必须大于或等于“ThreadsPerChild”指令。如果这些指令没有定义默认值,它们会在其它其它worker指令之前出现。

控制进程和线程的典型mpm_worker_module配置如下:

ServerLimit 16
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25

尽管Unix下的父进程通常以root开始以便于绑定80端口,但Apache是以较小特权的用户启动子进程和线程。User和Group指令用于设定Apache子进程的特权。子进程必须有能力阅读服务的内容,但除此之外的特权很少。此外,除非使用suexec,这些指令能被CGI脚本传承。

“MaxRequestsPerChild”控制杀死老进程并启动新进程的服务器循环过程。

免责声明:我们注重分享,文章、图片来自网络,版权归原作者,如有异议,请告知小编,我们会及时删除。

依据《互联网著作权行政保护办法》第12条,《信息网络传播权力保护条例》第14条/23条,即“避风港原则”,本文中部分图片及文字信息来源于网络,如有侵权行为请及时联系客服删除,本网不对内容传播行为承担行政法律责任。不承担与著作权或相关权有关的信息审查义务。

aidejiu.com 090202.com taoshidi.com youanli.com panxinqi.com boshiche.com 987832.com yihuile.com qimengzi.com