Linux

MPM Prefork,apache2 程序太多?

  • February 13, 2020

我有這個設置:

<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。如果你不能這樣做,你需要購買更多的記憶體。

引用自:https://serverfault.com/questions/244750