• 欢迎访问VPS岛网站,国外VPS,国内VPS,国外服务器,国内服务器,服务器主机,测评及优惠码,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站 QQ群

apache中mpm分析

Apache技术 zhan9san 24次浏览 已收录 0个评论

1、什么是MPM
Multi-Processing Module (MPM) implements a hybrid multi-process multi-threaded server。(多进程、多线程)

2、有多少种MPM
大致有:prefork MPM、worker MPM、BeOS MPM、NetWare MPM、OS/2 MPM、WinNT MPM。   

3、怎么知道apache当前用的是哪个MPM?
linux及windows下都可以使用命令:“httpd -l ” 进行查询。

4、各个MPM是怎么工作及如何优化?
(1)prefork MPM
         <IfModule mpm_prefork_module>
             StartServers                 10
             MinSpareServers         10
             MaxSpareServers         15
             ServerLimit                   2000
             MaxClients                    1000
             MaxRequestsPerChild 10000
         </IfModule>
         启动时建立StartServers个子进程,
         然后按每秒创建指数级个进程直到达到MinSpareServers个进程(最多增到每秒32个),
         如果空闲进程数大于MaxSpareServers,则检查kill掉一些空闲进程。
         MaxRequestPerChild指定每个进程处理了多少个请求后就自我毁灭。
         MaxClients指定apache最多可以同时处理的请求数,也就是进程数?
         MaxClients默认不能大于256,可以通过设定ServerLimit来增大这个限制数,最大20000?

(2)worker:
         <IfModule mpm_worker_module>
             StartServers                   3
             MaxClients                      2000
             ServerLimit                     25
             ThreadLimit                    200
             ThreadsPerChild            100
             MinSpareThreads          50
             MaxSpareThreads         200
             MaxRequestsPerChild    0
         </IfModule>
         启动时建立StartServers个子进程,
         每个进程包含ThreadsPerChild个线程,缺省最大64
         MinSpareThreads定义最小的空闲线程数,最大75
         MaxSpareThreads定义最大的空闲线程数,超过则执行清理?最大250
         MaxClients定义所有子进程中的线程总数
         ThreadLimit,最大20000,默认64
         ServerLimit,最大值20000,默认16
         
需要注意的是,如果显式声明了ServerLimit,那么它乘以ThreadsPerChild的值必须大于等于MaxClients,而且
MaxClients必须是ThreadsPerChild的整数倍,否则Apache将会自动调节到一个相应值(可能是个非期望值)。

(3)WinNT MPM:
         <IfModule mpm_winnt_module>
             ThreadsPerChild          500
             MaxRequestsPerChild 10000
         </IfModule>
         mpm_winnt.c是专门针对Windows  
NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说
mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。
ThreadLimit,默认1920,最大15000,限制单个进程的线程总数。


VPS岛 的文章和资源来自互联网,仅作为参考资料,如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。丨 转载请注明apache中mpm分析
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址