天天看點

php-fpm錯誤檢視級重新開機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 解決方法

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`