Linux下PHP-FPM進程管理策略可從進程守護、模式選擇、參數調優及監控等方面入手,具體如下:
進程守護
/etc/systemd/system/php-fpm.service文件,設置ExecStart參數并添加--nodaemonize,啟用自動重啟。/etc/supervisor/conf.d/php-fpm.conf,設置autostart、autorestart等參數實現進程守護。進程管理模式選擇
pm=static及pm.max_children參數。pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers,適合負載波動的環境。pm=ondemand及pm.process_idle_timeout。核心參數調優
pm.max_children需根據服務器內存計算(如服務器內存/單個進程內存占用),預留20%~30%資源給系統。pm.max_requests設置單個進程處理請求的最大數量,避免內存泄漏,建議500~1000。request_terminate_timeout限制請求處理超時時間,防止長時間占用進程。資源與安全配置
php.ini設置memory_limit、max_execution_time等參數,控制單個進程的資源占用。listen.owner、listen.group確保進程以低權限用戶運行,降低安全風險。listen.acl_users或listen.allowed_clients限制可訪問FastCGI的IP。監控與維護
pm.status_path并配置Nginx訪問路徑,實時查看進程狀態、活躍連接數等指標。error_log和慢日志(slowlog),通過tail -f或日志分析工具排查異常。參考來源: