MPM Prefork,apache2 程序太多?
我有這個設置:
<IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 1250 MaxClients 1250 MaxRequestsPerChild 1500 </IfModule>
當我做最高時,最小/最大伺服器設置為 5-10 是否可能,有大量的 apache 2 程序?
他們不應該只在5-10之間嗎?看260程序休眠O_O(d*mn apache)
點擊http://img200.imageshack.us/img200/3285/senzatitolo1iw.jpg
編輯1:
30分鐘後,頂部螢幕:
點擊:http: //img816.imageshack.us/img816/1645/immagineov.png
UP 24 小時後(MEM 使用量最高的訂單)
感謝您的任何解釋
(debian 6,燈泡,4GB 記憶體)
我在Server not respond to SSH and HTTP but ping works的評論中給了你答案,但顯然你不相信我。真的,這是真的!
您需要根據您的系統調整
MaxClients
/的大小。ServerLimit
您提到的“最小/最大伺服器的 5-10 個設置”基本上是無關緊要的——這只是閒置的額外伺服器的數量,沒有做任何 Apache 將保留的事情。為了正確設置 MaxClients,請查看您
httpd
(或apache2
)程序的典型高水位線,然後除以可用記憶體。最好稍微下降一點,讓系統的其餘部分能夠呼吸。由於您有 4GB 的 RAM 和 185MB 的程序,這意味著您的ServerLimit
值最多應該是 21——可能是 20 或 19。現在,190MB 可能是非典型的。您可以根據對典型使用情況的不同估計將 ServerLimit 設置得更高,但是您基本上是在賭自己永遠不會出現峰值。如果確實發生了,您的系統將記憶體不足。
如果您能找到一種方法來限制每個工作人員的記憶體使用量,那將是一場胜利。我打賭這是PHP Ate My RAM的一個案例。您可以將您的應用程序編碼為生活在較低的範圍內
memory_limit
嗎?如果你不能這樣做,你需要一個不同的模型來執行你的 PHP。如果你不能這樣做,你需要購買更多的記憶體。