Apache下Worker模式MPM参数分析

我的worker.c配置如下:
<IfModule mpm_worker_module>
ServerLimit        32
ThreadLimit       128
StartServers       5
MaxClients        2048
MinSpareThreads      150
MaxSpareThreads     500
ThreadsPerChild      64
MaxRequestsPerChild    2048
</IfModule>

\\大家自己根据机子的配置设定,同时记住公式,不然启动APACHE会报错
注意
对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。
ThreadLimit >= ThreadsPerChild
MaxClients <= ServerLimit * ThreadsPerChild 必须是ThreadsPerChild的倍数 (2048 <= 32*64)
MaxSpareThreads >= MinSpareThreads+ThreadsPerChild (500 >= 150+64)

ServerLimit 16
//服务器允许配置的进程数上限。这个指令和ThreadLimit结合使用设置了MaxClients最大允许配置的数值。任何在重启期间对这个指令的改变都将被忽略,但对MaxClients的修改却会生效。
ThreadLimit 64
//每个子进程可配置的线程数上限。这个指令设置了每个子进程可配置的线程数ThreadsPerChild上限。任何在重启期间对这个指令的改变都将被忽略,但对ThreadsPerChild的修改却会生效。默认值是”64″.
StartServers 3
//服务器启动时建立的子进程数,默认值是”3″。
MinSpareThreads 75
//最小空闲线程数,默认值是”75″。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。
MaxSpareThreads 250
//设置最大空闲线程数。默认值是”250″。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线 程。MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大于等于 MinSpareThreads加上ThreadsPerChild的和
MaxClients 400
//允许同时伺服的最大接入请求数量(最大线程数量)。任何超过MaxClients限制的请求都将进入等候队列。默认值是”400″ ,16(ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,你必须同时增加 ServerLimit的值。
ThreadsPerChild 25
//每个子进程建立的常驻的执行线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。
MaxRequestsPerChild 0
//设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为”0″,子进程将永远不会结束。
将MaxRequestsPerChild设置成非零值有两个好处:
1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

时间: 2024-11-09 02:42:40

Apache下Worker模式MPM参数分析的相关文章

Apache下三种MPM模式:prefork,worker和event

MPM(Multi-Processing Module,多进程处理模块):prefork,worker和event 查看Apache的模式,可以使用httpd -V命令来查看:  /usr/local/apache2/bin/httpd  -V Server version: Apache/2.2.29 (Unix) Server built:   Aug 20 2015 20:11:21 Server's Module Magic Number: 20051115:36 Server load

TP配置apache下Rewrite模式

httpd.conf配置文件中加载了mod_rewrite.so模块 AllowOverride None 将None改为 All 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [Q

优化Linux下的内核TCP参数来提高服务器负载能力

http://blog.renhao.org/2010/07/setup-linux-kernel-tcp-settings/ 提高服务器的负载能力,是一个永恒的话题.在一台服务器CPU和内存资源额定有限的情况下,最大的压榨服务器的性能,是最终的目的.要提高Linux系统下的负载能力,可以先启用Apache的Worker模式(参考我写的<Ubuntu下配置Apache的Worker模式>一文),来提高单位时间内的并发量.但是即使这么做了,当网站发展起来之后,连接数过多的问题就会日益明显.在节省

Apache的prefork模式和worker模式

prefork模式这个多路处理模块(MPM)实现了一个非线程型的.预派生的web服务器,它的工作方式类似于Apache 1.3.它适合于没有线程安全库,需要避免线程兼容性问题的系统.它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求. 这个MPM具有很强的自我调节能力,只需要很少的配置指令调整.最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小. worker模式此多路处理模块(

混合开发模式下主流移动开发平台分析

关键字:AppCan 移动开发平台 移动应用 Hybrid App在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之巅呢?是选择学习原生开发,研究Java.Object-C.C#等语言,还是选择继续使用网页开发,容忍HTML5功能的局限性?就在开发者左右为难的情况下Hybrid App作为一个折中的解决方案诞生了.那么究竟什么才是Hybrid App呢?HybridApp概念Hybrid App:Hybrid App is a mobile appl

Eureka 系列(06)消息广播(下):TaskDispacher 之 Acceptor - Worker 模式

Eureka 系列(06)消息广播(下):TaskDispacher 之 Acceptor - Worker 模式 [TOC] 0. Spring Cloud 系列目录 - Eureka 篇 Eureka 消息广播主要分三部分讲解: 服务器列表管理:PeerEurekaNodes 管理了所有的 PeerEurekaNode 节点. 消息广播机制分析:PeerAwareInstanceRegistryImpl 收到客户端的消息后,第一步:先更新本地注册信息:第二步:遍历所有的 PeerEureka

【运维基本功】centos6.5下巧用netstat命令的参数分析TCP连接与关闭过程,图文详解

前言 使用centos6.5系统自带的 netstat,grep,watch等命令,来分析网络连接状态,要求对 TCP 有限状态机的概念有较深入的理解. 同时,这也是除了使用强大的专业第三方协议分析器,如 wireshark 以外,最有效的办法. 写本博文的目的其中之一就是要告诉大家,不使用 wireshark 等第三方工具,自己也能做到一定粒度的网络连接,状态分析,调试等等. 用到的命令总结如下: watch -n 1 -d 'netstat -antupeo | grep --color 8

yum安装apache后更改worker模式

进入linux命令模式,输入 #yum install httpd                    //安装apache #vi  /etc/sysconfig/httpd            //修改文件,打开worker模式 将#号去掉 重启apache,命令如下 #service httpd restart 报错如下: [root@localhost ~]# service httpd restartStopping httpd:                          

Apache的工作模式

参考链接: http://httpd.apache.org/docs/2.4/ http://httpd.apache.org/docs/2.4/mpm.html/  MPM是Multi-Processing Modules,表示Apache中的多路处理模块,目前在Linux上的Apache 2.2/2.4中包括三种模式:prefork.worker和event模式 1,查看apache 使用的工作模式 /usr/local/apache2/bin/httpd -l  Compiled in m