Php
限制 PHP-FPM 的總記憶體使用量
我在我的 Debian 伺服器上執行 PHP-FPM。我的問題是關於記憶體使用情況。我只能在 PHP 中設置 memory_limit,對於某些請求來說這不應該太低。我也只能在 PHP-FPM 中設置程序數,而且也不應該太低,因為我正在執行很多 php 請求。
在大多數情況下,程序只會使用大約 2-20mb。程序限制為 512,因此大約是 5-10GB 的 RAM。但由於某些 php 腳本可以使用更多記憶體,因此允許的最大記憶體約為 1TB(512 個程序 * 2048mb)。如果出現問題,Debian OOM Killer 會隨機殺死程序。
有沒有辦法限制 php-fpm 的總記憶體使用量?就像 php-fpm 不會產生更多程序的硬限制,因為它的總 RAM 不足。
幾天前我遇到了類似的問題,當幾個 php5-fpm 大師產生了太多的程序時。OOM Killer 通過殺死 nginx 幫了大忙。
作為解決方案,我找到了帶有記憶體子系統的****cgroup機制。它允許將所有 FPM 程序放在 1 組中,該組限制為例如係統 RAM 的 60%。