apache中mpm分析

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,限制单个进程的线程总数。

时间: 2024-10-23 08:18:41

apache中mpm分析的相关文章

Apache Prefork、Worker和Event三种MPM分析

Apache 2.X  支持插入式并行处理模块,称为多路处理模块(MPM).在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的MPM可供选择,它们会影响到apache的速度和可伸缩性. Prefork MPM : 这个多路处理模块(MPM)实现了一个非线程型的.预派生的web服务器,它的工作方式类似于Apache 1.3.它适合于没有线程安全库,需要避免线程兼容性问题的系统.它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求.

Apache Prefork、Worker和Event三種MPM分析

三種MPM介紹 Apache 2.X  支持插入式並行處理模塊,稱爲多路處理模塊(MPM).在編譯apache時必須選擇也只能選擇一個MPM,對類UNIX系統,有幾個不同的MPM可供選擇,它們會影響到apache的速度和可伸縮性. Prefork MPM : 這個多路處理模塊(MPM)實現了一個非綫程型的.預派生的web服務器,它的工作方式類似於Apache 1.3.它適合於沒有綫程安全庫,需要避免綫程兼容性問題的系統.它是要求將每個請求相互獨立的情況下最好的MPM,這樣若一個請求出現問題就不會

Apache中3种MPM工作方式的区别及配置详解

MPM是Multi-Processing Modules,表示Apache中的多路处理模块,目前在Linux上的Apache2.2/2.4中包括三种模式:prefork.worker和event模式.apache或httpd的命令参数"-l"即可列出当前apache中已经编译了的模块,由于MPM只能在编译时指定其中一种,所以列出的静态模块中MPM只有1个,如下所示: # httpd -l Compiled in modules: core.c prefork.c    #说明使用的是p

PHP使用Apache中的ab测试网站的压力性能及mpm介绍

打开Apache安装的bin目录 shift+鼠标右键 复制粘贴以下代码->回车 ab -n 1000 -c 100 http://localhost/test.php 上例表示总共访问http://localhost/test.php这个脚本1000次,100并发(模拟100个用户同时访问). Server Software: Apache/2.4.4 #apache版本号 Server Hostname: localhost Server Port: 80 Document Path: /t

apache中部署rotatelogs日志分割和awstats日志分析

概述:rotatelogs日志分割:apache使用自带的日志分割模块rotatelogs分割日志,rotatelogs 是 Apache中自带的管道日志程序.awstats日志分析:是一款开源日志分析系统,可用来分析Apache网站服务器的访问日志,也可用来分析Samba.Vsftpd.IIS等服务的日志信息.结合crond等计划任务服务,可以对不断增长的日志内容定期进行分析.实验步骤:(一).rotatelogs日志分割1.vim编辑/etc/httpd/conf/httpd.conf配置文

非手工编译apache中awstats日志分析管理

非手工编译apache中awstats日志分析管理 实验环境:一台linux6.5 宿主机或者虚拟win7 使用的包为awstats-7.6.tar 事先设置好域名以及DNS地址解析 博主的域名为www.abc.com 1.挂载移动 2.进行脚本的配置,有y的y,该回车的回车,需要填写的内容如下 3.进入自动生成的文件中修改 4.创建目录 5.登陆apache网页以及日志管理网页,刷新awstats管理日志 6.刷新awstats管理日志后也刷新网页 末:代码脚本记录 配置apache网站设置d

Apache中的Order Allow,Deny用法详解

本文讲述了Apache中的Order Allow,Deny用法.分享给大家供大家参考,具体如下: Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用来控制目录和文件的访问授权. 所以,最常用的是: Order Deny,Allow Allow from All 注意"Deny,Allow"中间只有一个逗号,也只能有一个逗号,有空格都会出错:单词的大小写不限.上面设定的含义是先设定"

Apache中 RewriteRule 规则参数介绍

摘要: Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制.这里着重介绍 RewriteRule 规则以及参数说明. Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制.此URL操作可以依赖于各种测试,比如服务器变量

PHP 使用Apache 中的ab 测试网站的压力性能

打开Apache服务器的安装路径(我用的是 WampServer),在bin目录中有一个ab.exe的可执行程序,它就是要介绍的压力测试工具. 在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序.注意直接双击无法正确运行. d:(回车/进入D盘) cd wamp\bin\apache\Apache2.4.4\bin(回车/进入 bin目录) ab(回车/) 如果看到下列一些帮助信息就说明成功启动ab     开始启动ab 压力测试 ab -n 5000 -c 20