我在 Debian 服务器上运行 PHP-FPM。我的问题是关于内存使用情况。我只能在 PHP 中设置 memory_limit,对于某些请求来说,这个值不应该太低。我还只能在 PHP-FPM 中设置进程数,而且由于我运行了大量 php 请求,这个值也不应该太低。
在大多数情况下,进程仅使用大约 2-20mb。进程限制为 512,因此大约需要 5-10GB 的 RAM。但由于某些 php 脚本可以使用更多内存,因此允许的最大内存约为 1TB(512 个进程 * 2048mb)。如果出现问题,Debian OOM Killer 将随机终止进程。
有什么方法可以限制 php-fpm 的总内存使用量?比如硬限制,因为总 RAM 已用完,php-fpm 将不会生成更多进程。
答案1
几天前我也遇到过类似的问题,当时几个 php5-fpm 主服务器产生了太多进程。OOM Killer 通过杀死 nginx 提供了很大帮助。
作为我找到的解决方案控制群组机制内存子系统. 它允许将所有 FPM 进程放在 1 个组中,该组限制为系统 RAM 的 60%。