ubuntu

php-fpm在ubuntu上如何进行资源限制

小樊
42
2025-05-01 20:29:44
栏目: 编程语言

在Ubuntu上,您可以使用systemdcgroups来限制PHP-FPM的资源使用。以下是限制PHP-FPM资源的步骤:

  1. 首先,确保您的系统已经安装了systemdcgroups。在大多数现代Ubuntu版本中,这些组件默认已安装。

  2. 创建一个新的systemd服务文件,用于限制PHP-FPM的资源使用。在/etc/systemd/system/目录下创建一个名为php-fpm-limit.service的文件:

sudo nano /etc/systemd/system/php-fpm-limit.service
  1. 将以下内容粘贴到新创建的服务文件中,根据需要修改LimitNOFILELimitMEMLOCKLimitRSS等参数:
[Unit]
Description=PHP FastCGI Process Manager with resource limits
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/run/php/php7.4-fpm.pid
ExecStart=/usr/sbin/php-fpm7.4 --nodaemonize --fpm-config /etc/php/7.4/fpm/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true
ProtectSystem=full
ProtectHome=read-only
ProtectKernelTunables=read-only
ProtectKernelModules=read-only
LimitNOFILE=65535
LimitMEMLOCK=infinity
LimitRSS=512M
TasksMax=infinity
TimeoutStartSec=0

[Install]
WantedBy=multi-user.target

在这个例子中,我们限制了PHP-FPM进程的最大内存使用量为512MB。您可以根据需要调整这些值。

  1. 保存并关闭文件。

  2. 重新加载systemd配置以识别新创建的服务:

sudo systemctl daemon-reload
  1. 停止当前的PHP-FPM服务(如果有):
sudo systemctl stop php7.4-fpm
  1. 启动新的受限PHP-FPM服务:
sudo systemctl start php-fpm-limit.service
  1. 确保新的服务已成功启动:
sudo systemctl status php-fpm-limit.service

现在,您的PHP-FPM进程应该受到在php-fpm-limit.service文件中定义的资源限制。

请注意,这个示例是针对PHP 7.4的。如果您使用的是其他版本的PHP,请相应地修改ExecStart行中的路径。

0
看了该问题的人还看了