優化 PHP-FPM(FastCGI Process Manager)在 Linux 上的表現可以通過多種方式實現,以下是一些常見的優化策略:
調整進程管理器配置:
pm:設置進程管理器類型,可選 static、dynamic 或 ondemand。
static:固定數量的子進程。dynamic:根據負載動態調整子進程數量。ondemand:按需啟動子進程,適用于低流量網站。pm.max_children:設置最大子進程數。pm.start_servers:設置啟動時的服務器進程數(僅對 dynamic 和 ondemand 有效)。pm.min_spare_servers:設置最小空閑服務器進程數(僅對 dynamic 和 ondemand 有效)。pm.max_spare_servers:設置最大空閑服務器進程數(僅對 dynamic 和 ondemand 有效)。pm.max_requests:每個子進程在重啟前處理的請求數,有助于避免內存泄漏。優化 PHP 配置:
memory_limit:設置腳本允許使用的最大內存。upload_max_filesize 和 post_max_size:設置上傳文件的最大大小。max_execution_time:設置腳本的最大執行時間。opcache.enable:啟用 OPcache 加速 PHP 腳本執行。opcache.memory_consumption:設置 OPcache 分配的內存大小。opcache.interned_strings_buffer:設置內聯字符串緩沖區大小。opcache.max_accelerated_files:設置可以緩存的文件數量。調整系統參數:
ulimit -n。vm.swappiness、vm.overcommit_memory 等。使用 PHP-FPM 池:
監控和分析:
top、htop、php-fpm status 等監控 PHP-FPM 的性能。升級硬件:
使用 PHP 7+:
代碼優化:
使用持久連接:
啟用 HTTP/2:
在進行任何優化之前,建議先在測試環境中進行更改,并監控其對性能的影響。此外,確保在生產環境中應用更改之前備份所有配置文件。