php-fpm 進程管理

官方版php-fpm 進程修改位置
/usr/local/etc/php-fpm.d/www.conf
針對PHP-fpm 三種子進程管理模式,依序寫個文章紀錄

pm = static 固定進程數量
- pm.max_children 同時能運行的最大子進程數。
pm = dynamic (預設) 動態進程數量
- pm.max_children
- 子進程最高數量上限。
- 需要考慮每個php-fpm child process 的記憶體佔用量、系統可用記憶體總量、CPU核心數量進行配置。
- 若設定異常
- 太小會造成流量高峰時出現排隊或者502錯誤。
- 太大會導致機器的CPU和RAM過度消耗而讓整體性能下降或崩潰。
- pm.start_servers
- 在啟動時預先建立的子行程數量。
- 數值會介於
min_spare_servers
和max_spare_servers
之間(至少不低於前者min_spare_servers
)
- pm.min_spare_servers
- 最小「閒置」的子進程數量
- pm.max_spare_servers
- 最大「閒置」的子進程數量
- 必須大於等於
start_servers
才能保持正常運行 - 不能超過
max_children
因為總數都會限制於該參數的上限
- pm.max_spawn_rate
- 限制FPM「每分鐘」最多能新產生的子進程的「速率」
- 若速度太快,系統會按照該參數進行節流,避免短時間內大量生成子進程導致資源飆升。
參考來源