将Apache限制为每个进程1个请求

时间:2010-04-13 01:52:58

标签: apache

我在apache上有一些长时间运行的进程,当服务器有点负载时,它们似乎都会耦合到3-4个进程。我已经尝试将MaxRequestsPerChild设置为1并且可以正常工作,但是始终生成新进程非常昂贵。那么有没有办法限制每个进程/线程1个请求,而不会经常破坏它。

这是我目前的配置:

<IfModule prefork.c>
StartServers       25
MinSpareServers    50
MaxSpareServers   50
ServerLimit      512
MaxClients       50
MaxRequestsPerChild  10
</IfModule>
<IfModule worker.c>
StartServers         25
MaxClients        50
MinSpareThreads     50
MaxSpareThreads     125
ThreadsPerChild     50
MaxRequestsPerChild  10
</IfModule>

2 个答案:

答案 0 :(得分:2)

您想禁用'KeepAlive':

KeepAlive off

禁用持久连接。见http://httpd.apache.org/docs/2.0/mod/core.html#KeepAlive

答案 1 :(得分:-2)

ThreadsPerChild控制每个进程的请求数。所以这是我的结果配置:

<IfModule prefork.c>
StartServers       100
MinSpareServers    150
MaxSpareServers   150
ServerLimit      512
MaxClients       150
MaxRequestsPerChild  100
</IfModule>

<IfModule worker.c>
StartServers         100
MaxClients         150
MinSpareThreads     150
MaxSpareThreads     150
ThreadsPerChild     1
MaxRequestsPerChild  100
</IfModule>