ubuntu

如何在Ubuntu上限制PHP-FPM资源使用

小樊
38
2025-08-23 18:03:24
栏目: 编程语言

在Ubuntu上限制PHP-FPM资源使用可以通过配置文件来实现。以下是一些常见的方法:

方法一:使用php-fpm.confwww.conf

  1. 编辑php-fpm.conf文件: 打开/etc/php/7.x/fpm/php-fpm.conf(将7.x替换为你的PHP版本)。

    sudo nano /etc/php/7.x/fpm/php-fpm.conf
    

    找到并修改以下参数:

    ; 设置最大进程数
    pm.max_children = 5
    
    ; 设置每个子进程的最大请求数
    pm.max_requests = 500
    
    ; 设置进程空闲时间超过此值时自动重启
    pm.process_idle_timeout = 10s
    
  2. 编辑www.conf文件: 打开/etc/php/7.x/fpm/pool.d/www.conf

    sudo nano /etc/php/7.x/fpm/pool.d/www.conf
    

    找到并修改以下参数:

    ; 设置最大进程数
    pm.max_children = 5
    
    ; 设置每个子进程的最大请求数
    pm.max_requests = 500
    
    ; 设置进程空闲时间超过此值时自动重启
    pm.process_idle_timeout = 10s
    

方法二:使用systemd服务配置

如果你使用的是systemd来管理PHP-FPM服务,可以在服务文件中添加资源限制。

  1. 编辑PHP-FPM服务文件: 打开/lib/systemd/system/php7.x-fpm.service(将7.x替换为你的PHP版本)。

    sudo nano /lib/systemd/system/php7.x-fpm.service
    

    [Service]部分添加以下行:

    [Service]
    ...
    LimitNOFILE=65535
    LimitMEMLOCK=infinity
    
  2. 重新加载systemd配置并重启服务

    sudo systemctl daemon-reload
    sudo systemctl restart php7.x-fpm
    

方法三:使用cgroups

如果你需要更细粒度的控制,可以使用cgroups来限制PHP-FPM的资源使用。

  1. 安装cgroup-tools

    sudo apt-get install cgroup-tools
    
  2. 创建一个新的cgroup

    sudo cgcreate -g memory:/php-fpm
    
  3. 设置内存限制

    echo "1G" | sudo tee /sys/fs/cgroup/memory/php-fpm/memory.limit_in_bytes
    
  4. 将PHP-FPM进程移动到新的cgroup

    首先找到PHP-FPM的主进程ID:

    ps aux | grep php-fpm
    

    然后将主进程移动到新的cgroup:

    sudo cgclassify -g memory:/php-fpm <PID>
    

注意事项

通过以上方法,你可以在Ubuntu上有效地限制PHP-FPM的资源使用。

0
看了该问题的人还看了