Apache MaxRequestsPerChild 是什么?

最大请求数每个子进程

设定为终止处理了特定数量请求的子进程。以下内容随便写。

<IfModule prefork.c>
StartServers     30
MinSpareServers  30
MaxSpareServers  30
ServerLimit      30
MaxClients       30
MaxRequestsPerChild  128
</IfModule>

写时复制

如果使用prefork(子进程)的话,将使用Copy on Write以在父子进程之间共享内存。
在fork之后,由于父子进程共享相同的物理内存,因此直到实际使用内存之前,内存使用率不会增加。

随着时间流逝,家长和孩子之间的记忆共享率会下降。
= 记忆使用率会增加。

每个子进程的最大请求数

MaxRequestsPerChild 这个属性会在接收到一定数量的连接后,杀死子进程。
如果设置为上述情况,则完成了128个请求处理的子进程将会被杀死,并且在此之后会再次生成30个子进程。

在子进程被kill掉时,子进程所使用的内存将被释放,并生成一个与父进程共享内存空间的新进程。这样就能够降低内存使用率。

可以解决由mod_perl或mod_php引起的内存泄漏问题。

闲谈

如果在大型网站上将值设为较小的值,会经常发生进程的终止和重启,导致服务器负荷增加。

广告
将在 10 秒后关闭
bannerAds