查看伺服器上的PHP執行日誌如果經常頻繁地出現類似以下警告訊息,可以嘗試調整優化php-fpm的執行進程設定參數
1 2 3 |
WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 57 idle, and 112 total children WARNING: [pool www] server reached pm.max_children setting (60), consider raising it |
設定參數解釋:
pm.max_children | 最多進程數量 |
pm.start_servers | 啟動時候開啟的進程數量 |
pm.min_spare_servers | 最小閒置進程數量 |
pm.max_spare_servers | 最大閒置進程數量 |
pm.max_requests | 單一進程最大可處理連線數 |
其中的max_chlidren設定太小會造成伺服器處理連線的速度下降,設太大則會耗盡系統可用的記憶體
所以必須按照自己伺服器上的執行的程式狀況來調整。
查詢伺服器目前php-fpm所執行的狀態指令:
指令一(可以列出目前各執行序所使用的資源情形)
1 |
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }' | grep php-fpm |
指令二(可以列出目前執行序所使用的資源平均值)
1 |
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }' |
快速計算php-fpm設定值的網站:
網站二 – Tuning dynamic php-fpm settings
調整完參數,記得要重啟php-fpm
1 |
/etc/init.d/php-fpm reload |
作者:月影星痕
轉載請註明本文網址:https://www.chkaja.com/php-fpm-configuration-optimization/
版權所有 © KJ資訊站 | 本文章採用 BY-NC-SA 進行授權。
發佈留言