Apache工作模式配置

apache工作模式:prefork和worker

prefork模式:

    prefork是Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较大。

prefork模式安全性比较好,但是性能会差一点;

prefork模式配置:

<IfModule mpm_prefork_module>

ServerLimit 256                 //服务上限,20000是ServerLimit这个参数的最大值

StartServers 5  //指定服务器启动时建立的子进程数量

MinSpareServers 5  //指定空闲子进程的最小数量

MaxSpareServers 10  //设置空闲子进程的最大数量

MaxClients 256  //限定同一时间客户端最大接入请求的数量(单个进程并发线程数)

MaxRequestsPerChild 0  //每个子进程在其生存期内允许伺服的最大请求数量

</IfModule>


ServerLimit

默认的MaxClient最大是256个线程,如果想设置更大的值,就的加上ServerLimit这个参数。20000是ServerLimit这个参数的最大值。如果需要更大,则必须编译apache,此前都是不需要重新编译Apache。

生效前提:必须放在其他指令的前面


StartServers

指定服务器启动时建立的子进程数量,prefork默认为5。


MinSpareServers

指定空闲子进程的最小数量,默认为5。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。


MaxSpareServers

设置空闲子进程的最大数量,默认为10。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设的太大。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。


MaxClients

限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为256。任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务。要增大这个值,你必须同时增大ServerLimit。


MaxRequestsPerChild

每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束。如果 MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:

1. 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。

2. 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。


worker模式:

    worker使用多个子进程,每个子进程有多个线程,每个线程在某个确定的时间只能维持一个连接,内存占用量比较小,适合高流量的http服务器。缺点是假如一个线程崩溃,整个进程就会连同其任何线程一起”死掉”,所以要保证一个程式在运行时必须被系统识别为”每个线程都是安全的”。

worker模式可以应对高流量,但是安全性不太好;

worker模式配置:

<IfModule mpm_worker_module>

StartServers 2         //服务器启动时建立的子进程数

MaxClients 150 //允许同时伺服的最大接入请求数量(最大线程数量)

MinSpareThreads 25 //最小空闲线程数,默认值是"75"

MaxSpareThreads 75 //设置最大空闲线程数。默认值是"250"

ThreadsPerChild 25 //每个子进程建立的常驻的执行线程数。默认值是25

MaxRequestsPerChild 0 //设置每个子进程在其生存期内允许伺服的最大请求数量。

</IfModule>


StartServers

服务器启动时建立的子进程数,默认值是"3"。


MaxClients

允许同时伺服的最大接入请求数量(最大线程数量)。任何超过MaxClients限制的请求都将进入等候队列。默认值 是"400",16(ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,你必须同时增加ServerLimit的值。


MinSpareThreads

最小空闲线程数,默认值是"75"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。


MaxSpareThreads

设置最大空闲线程数。默认值是"250"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。 MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大于等于 MinSpareThreads加上ThreadsPerChild的和。


ThreadsPerChild

每个子进程建立的常驻的执行线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。


MaxRequestsPerChild

设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:

1. 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。

2. 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

注意对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。

转载地址:http://www.cnblogs.com/adforce/p/3363148.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值