寶塔控制面板內(nèi)PHP報(bào)WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)錯(cuò)誤的解決辦法
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
最近感覺網(wǎng)站反映有些慢,現(xiàn)在也不知道哪里問題,今天打開PHP看看日志,發(fā)現(xiàn)了好多的錯(cuò)誤,錯(cuò)誤如下
[20-Aug-2021 12:44:49] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 28 total children [20-Aug-2021 12:44:50] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 2 idle, and 33 total children [20-Aug-2021 12:44:51] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 1 idle, and 36 total children
里面有一段寫著 spawning 8? 16 32 等等之類的,這就是錯(cuò)誤方向;
首先分析驗(yàn)證問題:
- 報(bào)警級(jí)別“WARNING”,也就是說業(yè)務(wù)受到的影響比較小,實(shí)際驗(yàn)證也是這樣。
- 日志第二條還提到了并發(fā)數(shù)達(dá)到設(shè)定的16 32之類的,需要提升。
- php-fpm的進(jìn)程數(shù)比較少,建議增加 pm.start_servers, or pm.min/max_spare_servers
- 增加到多少呢?spawning 8,也就是說至少得8個(gè)進(jìn)程;
怎么去解決此問題呢?如果你是用的BT寶塔面板,直接在PHP設(shè)置→性能調(diào)整里面把并發(fā)數(shù)調(diào)到一個(gè)大的數(shù)字即可,比如100并發(fā);如下圖
如無寶塔,自己配置的服務(wù)器那么找到php-fpm.conf
這個(gè)文件,把以下數(shù)值修改到合適的數(shù)值即可:
pm.max_children = 50 --允許創(chuàng)建的最大子進(jìn)程數(shù) pm.start_servers = 15 --起始進(jìn)程數(shù)(服務(wù)啟動(dòng)后初始進(jìn)程數(shù)量) pm.min_spare_servers = 15 --最小空閑進(jìn)程數(shù)(清理空閑進(jìn)程后的保留數(shù)量) pm.max_spare_servers = 35 --最大空閑進(jìn)程數(shù)(當(dāng)空閑進(jìn)程達(dá)到此值時(shí)清理)
注意:上面的數(shù)值請(qǐng)根據(jù)的網(wǎng)站的訪問量來修改。
延伸閱讀:自己搭建服務(wù)器解決方法
第一步:執(zhí)行命令:
ps -ef | grep php
可以得到當(dāng)前的php-fpm進(jìn)程數(shù)以及php-fpm.conf配置文件位置。
這里肯定是只有20個(gè)進(jìn)程數(shù)
第二步:修改 php-fpm.conf 文件
由于我用的是 pm = dynamic,再加上php-fpm.log有一個(gè)提示:spawning 32,其它的都是spawning 8,因此我個(gè)人設(shè)置如下:
pm.start_servers = 20; pm.min_spare_servers = 20; pm.max_spare_servers = 42; pm = dynamic 如何控制子進(jìn)程,選項(xiàng)有static和dynamic
pm.max_children:靜態(tài)方式下開啟的php-fpm進(jìn)程數(shù)量
pm.max_requests:php-fpm子進(jìn)程能處理的最大請(qǐng)求數(shù)
pm.start_servers:動(dòng)態(tài)方式下的起始php-fpm進(jìn)程數(shù)量
pm.min_spare_servers:動(dòng)態(tài)方式下的最小php-fpm進(jìn)程數(shù)
pm.max_spare_servers:動(dòng)態(tài)方式下的最大php-fpm進(jìn)程數(shù)量
區(qū)別:
如果pm設(shè)置為 static,那么,其實(shí)只有pm.max_children這個(gè)參數(shù)生效。系統(tǒng)會(huì)開啟設(shè)置數(shù)量的php-fpm進(jìn)程。
如果pm設(shè)置為 dynamic,那么pm.max_children參數(shù)失效,后面3個(gè)參數(shù)生效。
第三步:重啟php-fpm驗(yàn)證結(jié)果與持續(xù)觀察
1、殺掉php-fpm所有的進(jìn)程
pkill -9 php-fpm
2、重啟php-fpm
cd /usr/local/php ./sbin/php-fpm
3、經(jīng)過我后續(xù)觀察php-fpm日志,未發(fā)現(xiàn)類似日志出現(xiàn)。
問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!