WARNING: [pool www] server reached pm.max_children setting (5), consider raising it 解決方法
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
翻譯過來就是:
警告:[池WWW伺服器達到pm.max_children設定](5),考慮提高它
我們隻需要修改"pm.max_children" 參數即可!
說明:
pm.max_children = 30 //設定子程序最大數值
舉例:
每個php-fpm子程序占用20M記憶體,伺服器的記憶體是1G,除去系統中其他應用占用的記憶體。
假如系統為300M,剩餘700M,700/20 = 35,最多設定35,可以取值稍微低一些為30。
與此同時我們還要調整以下參數
pm.start_servers = 10 //php-fpm啟動起始程序數
pm.min_spare_servers = 10 //動态php-fpm的最小空閑程序數
pm.max_spare_servers = 24 //動态php-fpm的最大空閑程序數
pm.max_requests = 500 //所有子程序重新開機時間
舉例:
所有子程序重新開機時間為300s一次,并發量為50,max_children設定為30;
max_requests = 300*50/30=500;
如果想讓程序每隔一小時重生一次,則是3600*50/30=6000。
修改pm.max_children參數具體操作步驟:
如果你是用的一鍵安裝包,請按以下步驟操作:
1、執行vim指令
vim /usr/local/php/etc/php-fpm.conf
pm.max_children = 5
直接修改為
pm.max_children = 20
提示:20這個值僅做參考,可以繼續增加,具體的話請根據自己的伺服器配置來設定;請按照上面的計算方法來設定;并不是越大越好!隻要配置後不再報錯就OK!
lnmp一鍵安裝包,如果部落客沒記錯,預設的是pm.max_children = 10;
1.檢視php-fpm狀态
ps aux|grep php-fpm
2.檢視 php-fpm.conf
上面master程序可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf這個配置檔案,cat /usr/local/php/etc/php-fpm.conf 發現:
[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = run/php-fpm.pid
id檔案路徑應該位于/usr/local/php/var/run/php-fpm.pid,由于注釋掉,是以沒有生成,我們把注釋去除,再kill -USR2 42891 重新開機php-fpm,便會生成pid檔案,下次就可以使用以下指令重新開機,關閉php-fpm了:
php-fpm master 程序可以了解以下信号:
立刻終止:SIGINT/SIGTERM
平滑終止:SIGQUIT
重新打開日志檔案:SIGUSR1/USR1
平滑重載所有 worker 程序并重新載入配置和二進制子產品:SIGUSR2/USR2
例如:
關閉 php-fpm
kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid
php-fpm 重新開機
kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid`