在Ubuntu上限制PHP-FPM資源使用可以通過配置文件來實現。以下是一些常見的方法:
php-fpm.conf和www.conf編輯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
編輯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服務,可以在服務文件中添加資源限制。
編輯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
重新加載systemd配置并重啟服務:
sudo systemctl daemon-reload
sudo systemctl restart php7.x-fpm
cgroups如果你需要更細粒度的控制,可以使用cgroups來限制PHP-FPM的資源使用。
安裝cgroup-tools:
sudo apt-get install cgroup-tools
創建一個新的cgroup:
sudo cgcreate -g memory:/php-fpm
設置內存限制:
echo "1G" | sudo tee /sys/fs/cgroup/memory/php-fpm/memory.limit_in_bytes
將PHP-FPM進程移動到新的cgroup:
首先找到PHP-FPM的主進程ID:
ps aux | grep php-fpm
然后將主進程移動到新的cgroup:
sudo cgclassify -g memory:/php-fpm <PID>
cgroups時,確保你有足夠的權限來管理cgroup。通過以上方法,你可以在Ubuntu上有效地限制PHP-FPM的資源使用。