2010-04-13 56 views
2

我在Apache上有幾個長時間運行的進程,並且當服務器獲得一點負載時,它們似乎都會耦合到3-4個進程中。我已經嘗試將MaxRequestsPerChild設置爲1,並且工作正常,但始終產生新的進程非常昂貴。那麼是否有辦法限制每個進程/線程的1個請求,而不是一直銷燬它。將Apache限制爲每個進程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

您忘記提問了。 – 2010-04-13 02:11:46

+0

呃,你的權利〜_〜 – Gorilla3D 2010-04-13 02:40:59

回答

-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> 
+1

這違反了無數的apache guidleines。 (最大服務器將默認爲min + 1,低maxrequestsperchild會增加成本高昂的查殺和線程創建,保留150個空閒服務器代價高昂,等等)http://httpd.apache.org/docs/2.2/mod/prefork.html – Eddie 2013-11-08 18:22:43

相關問題