设为首页 收藏本站
查看: 1114|回复: 0

[经验分享] Apache里的 MPM 调优比较详细

[复制链接]

尚未签到

发表于 2015-8-2 10:23:41 | 显示全部楼层 |阅读模式
  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
         
              StartServers                 10
              MinSpareServers         10
              MaxSpareServers         15
              ServerLimit                   2000
              MaxClients                    1000
              MaxRequestsPerChild 10000
         
          启动时建立StartServers个子进程,
          然后按每秒创建指数级个进程直到达到MinSpareServers个进程(最多增到每秒32个),
          如果空闲进程数大于MaxSpareServers,则检查kill掉一些空闲进程。
          MaxRequestPerChild指定每个进程处理了多少个请求后就自我毁灭。
          MaxClients指定apache最多可以同时处理的请求数,也就是进程数?
          MaxClients默认不能大于256,可以通过设定ServerLimit来增大这个限制数,最大20000?
  (2)worker:
         
              StartServers                   3
              MaxClients                      2000
              ServerLimit                     25
              ThreadLimit                    200
              ThreadsPerChild            100
              MinSpareThreads          50
              MaxSpareThreads         200
              MaxRequestsPerChild    0
         
          启动时建立StartServers个子进程,
          每个进程包含ThreadsPerChild个线程,缺省最大64
          MinSpareThreads定义最小的空闲线程数,最大75
          MaxSpareThreads定义最大的空闲线程数,超过则执行清理?最大250
          MaxClients定义所有子进程中的线程总数
          ThreadLimit,最大20000,默认64
          ServerLimit,最大值20000,默认16
           需要注意的是,如果显式声明了ServerLimit,那么它乘以ThreadsPerChild的值必须大于等于MaxClients,而且 MaxClients必须是ThreadsPerChild的整数倍,否则Apache将会自动调节到一个相应值(可能是个非期望值)。
  (3)WinNT MPM:
         
              ThreadsPerChild          500
              MaxRequestsPerChild 10000
         
          mpm_winnt.c是专门针对Windows  NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说 mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。
ThreadLimit,默认1920,最大15000,限制单个进程的线程总数。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-93234-1-1.html 上篇帖子: Apache的虚拟主机设置 下篇帖子: 【转】linux下apache支持中文名的解决方法!(mod_encoding安装手册)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表