限制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杀手通过杀死Nginx来帮助很多。

作为解决scheme,我发现cgroup机制与内存子系统 。 它允许将所有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