限制PHP-FPM的總記憶體使用量

限制PHP-FPM的總記憶體使用量

我在 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%。

很棒的文檔: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch-Using_Control_Groups.html

相關內容