在Ubuntu上,您可以使用systemd和cgroups来限制PHP-FPM的资源使用。以下是实现资源限制的步骤:
首先,确保您已经安装了PHP-FPM。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install php-fpm
PHP-FPM使用池(pool)来管理不同的PHP进程。您可以通过编辑/etc/php/版本/fpm/pool.d/www.conf文件来配置池。
例如,编辑/etc/php/7.4/fpm/pool.d/www.conf文件:
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
systemd会自动创建cgroups来管理资源限制。您可以在/etc/systemd/system/php7.4-fpm.service.d/override.conf文件中添加cgroups配置。
创建并编辑override.conf文件:
sudo mkdir -p /etc/systemd/system/php7.4-fpm.service.d
sudo nano /etc/systemd/system/php7.4-fpm.service.d/override.conf
在override.conf文件中添加以下内容:
[Service]
CPUQuota=50%
MemoryLimit=256M
这些配置将限制PHP-FPM进程的CPU使用率为50%,内存使用量为256MB。
保存并关闭文件后,重新加载systemd配置并重启PHP-FPM服务:
sudo systemctl daemon-reload
sudo systemctl restart php7.4-fpm
您可以使用以下命令来验证资源限制是否生效:
sudo systemctl status php7.4-fpm
查看输出中的CPUQuota和MemoryLimit字段,确认它们已经正确设置。
除了CPU和内存限制外,您还可以使用其他cgroups参数来限制其他资源,例如:
IOPriority: I/O优先级CPUAccounting: CPU会计CPURealtimeRuntime: 实时CPU时间例如,限制I/O优先级:
[Service]
IOPriority=7
限制CPU会计:
[Service]
CPUAccounting=true
通过这些步骤,您可以在Ubuntu上有效地限制PHP-FPM的资源使用。