以下是Ubuntu中PHP-FPM性能調優的核心方法:
優化進程管理配置
static
(固定進程,適合內存充足、流量穩定場景)、dynamic
(動態調整,適合流量波動場景)、ondemand
(按需創建,適合低負載場景)。pm.max_children
:根據內存計算(總內存-預留內存)/單個進程內存,避免內存耗盡。pm.start_servers
:建議設置為CPU核心數×2,快速響應請求。pm.min/max_spare_servers
:分別設置為CPU核心數的2-4倍,平衡資源利用率。pm.max_requests
:設置為500-1000,防止內存泄漏。啟用并優化OPcache
opcache.enable=1
,opcache.memory_consumption=128-256M
(根據內存調整),opcache.max_accelerated_files=32768
(覆蓋項目文件數)。opcache.preload
預加載常用文件,進一步提升速度。系統級優化
ulimit -n 65535
/etc/security/limits.conf
,設置* soft nofile 65535
。net.core.somaxconn
(監聽隊列長度),匹配PHP-FPM的listen_backlog
。vm.swappiness=0
(避免頻繁使用Swap)。連接與超時優化
listen=/run/php-fpm.sock
,并設置listen.owner/group=www-data
。fastcgi_read_timeout=10s
對應request_terminate_timeout=10s
)。監控與持續優化
pm.status_path=/php-fpm-status
,通過Nginx暴露監控接口,查看活躍進程、隊列長度等指標。slowlog=/var/log/php-fpm/slow.log
),定位低效代碼或SQL。代碼與緩存優化
操作建議:修改配置后需重啟PHP-FPM(sudo systemctl restart php{version}-fpm
),優先在測試環境驗證效果,再應用到生產環境。
參考來源: