PHP-FPM在Linux下的資源限制可通過以下方式設置:
系統服務配置(systemd)
編輯PHP-FPM的systemd服務文件(如/etc/systemd/system/php-fpm.service),在[Service]中添加參數:
LimitNOFILE:限制文件描述符數量(如65535)。LimitMEMLOCK:限制內存鎖定大?。ㄈ?code>infinity或具體值)。LimitRSS:限制進程常駐內存集大?。ㄈ?code>512M)。CPUQuota:限制CPU使用比例(需結合cpu.cfs_period_us,如50000表示50%)。sudo systemctl daemon-reload并重啟服務。cgroups控制組
sudo apt-get install cgroup-tools。sudo cgcreate -g cpu,memory:/php-fpm。echo "1G" | sudo tee /sys/fs/cgroup/memory/php-fpm/memory.limit_in_bytes。echo "50000" | sudo tee /sys/fs/cgroup/cpu/php-fpm/cpu.cfs_quota_us(配合cpu.cfs_period_us=100000,即50%)。sudo cgclassify -g cpu,memory:/php-fpm $(pgrep php-fpm)。PHP-FPM配置文件
編輯/etc/php/{version}/fpm/pool.d/www.conf,設置:
pm.max_children:限制最大子進程數。php_admin_value[memory_limit]:限制單個腳本內存(如128M)。request_terminate_timeout:限制請求執行時間(如30s)。pm.start_servers/pm.min_spare_servers/pm.max_spare_servers:調整進程池參數。sudo systemctl restart php{version}-fpm。注意:不同方法可能相互影響,建議優先使用systemd或cgroups,避免重復配置。需根據服務器資源合理調整參數,避免過度限制導致服務異常。