apache之mpm_prefork模块详细解说

[apache] 2024-04-26 圈点400

摘要:apache之mpm_prefork模块详细解说 。# StartServers# MinSpareServers# MaxSpareServers# MaxRequestWorkers# MaxConnectionsPerChild参数的详细介绍 

apache之mpm_prefork模块详细解说


在apache的配置文件中,关于prefork MPM有这样的一段,如下:

<IfModule mpm_prefork_module>

StartServers                10

MinSpareServers        10

MaxSpareServers        15

MaxRequestWorkers 250
MaxConnectionsPerChild 0

</IfModule>


参数说明:

# StartServers:  数量的服务器进程开始

# MinSpareServers:  最小数量的服务器进程,保存备用

# MaxSpareServers:  最大数量的服务器进程,保存备用

# MaxRequestWorkers:  最大数量的服务器进程允许开始

# MaxConnectionsPerChild:  最大连接数的一个服务器进程服务

解说:

prefork 控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两 个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。这种模式 可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。MaxSpareServers设置了最大的空闲进程数,如果空闲进程数大于这个 值,Apache会自动kill掉一些多余进程。这个值不要设得过大,但如果设的值比MinSpareServers小,Apache会自动把其调整为 MinSpareServers+1。如果站点负载较大,可考虑同时加大MinSpareServers和MaxSpareServers。


在apache2.3.13以前的版本MaxRequestWorkers被称为MaxClients 。

(MaxClients是这些指令中最为重要的一个,设定的是 Apache可以同时处理的请求,是对Apache性能影响最大的参数。其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps -ef|grep http|wc -l来确认),那么后面的请求就要排队,直到某个已处理请求完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。虽然理论上这个值越大,可以 处理的请求就越多,但Apache默认的限制不能大于256。)




apache  

感谢反馈,已提交成功,审核后即会显示