我在 Debian 伺服器上運行 PHP-FPM。我的問題是關於記憶體使用情況。我只能在 PHP 中設定記憶體限制,並且對於某些請求來說不應該太低。我也只能設定 PHP-FPM 中的進程數,也不應該太低,因為我執行了大量 php 請求。
在大多數情況下,進程僅使用 2-20mb 左右。進程限制為 512,因此大約需要 5-10GB RAM。但由於某些 php 腳本可以使用更多內存,因此允許的最大內存約為 1TB(512 個進程 * 2048mb)。如果出現問題,Debian OOM Killer 將隨機終止進程。
有沒有辦法限制 php-fpm 的總記憶體使用量?就像一個硬限制,php-fpm 不會產生更多進程,因為它超出了總 RAM。
答案1
幾天前,我遇到了類似的問題,當時幾個 php5-fpm 大師產生了太多進程。 OOM Killer 透過殺死 nginx 提供了很大幫助。
作為我發現的解決方案組組機制與記憶體子系統。它允許將所有 FPM 進程放在 1 組中,該組僅限於系統 RAM 的 60%。