在Linux上,可以通過以下幾種方式來設置PHP-FPM的資源限制:
systemd
服務文件設置資源限制如果你的系統使用systemd
管理服務,可以在PHP-FPM的服務文件中設置資源限制。通常,該文件位于/etc/systemd/system/php-fpm.service
或/lib/systemd/system/php-fpm.service
。在[Service]
部分添加以下內容:
LimitNOFILE=65535
LimitMEMLOCK=infinity
這將分別設置文件描述符限制為65535和內存鎖定限制為無限制。你可以根據需要調整這些值。
cgroups
設置資源限制cgroups
(控制組)是Linux內核的一個功能,可以用來限制進程組的資源使用。要使用cgroups
限制PHP-FPM的資源,請按照以下步驟操作:
cgroup-tools
(如果尚未安裝):sudo apt-get install cgroup-tools
cgroup
:sudo cgcreate -g memory,cpu:/php-fpm
echo "1G" | sudo tee /sys/fs/cgroup/memory/php-fpm/memory.limit_in_bytes
echo "50%" | sudo tee /sys/fs/cgroup/cpu/php-fpm/cpu.cfs_quota_us
這將限制PHP-FPM進程組的內存使用為1GB,CPU使用為50%。
sudo systemctl restart php-fpm
ulimit
設置資源限制ulimit
命令可以用來設置shell會話的資源限制。要使用ulimit
限制PHP-FPM的資源,請按照以下步驟操作:
打開PHP-FPM的啟動腳本(通常位于/etc/init.d/php-fpm
或/etc/init.d/php7.x-fpm
,其中x
是PHP版本號)。
在start
函數中添加以下內容:
ulimit -n 65535
ulimit -m unlimited
這將分別設置文件描述符限制為65535和內存鎖定限制為無限制。
sudo systemctl restart php-fpm
請注意,這些方法可能會相互沖突。建議只使用一種方法來設置資源限制。