我在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>
答案 0 :(得分:2)
答案 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>