宝塔控制面板内PHP报WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)错误的解决办法

[全站通告]如需人工一对一付费服务(业务),请加微信 2589053300 进行沟通处理-非诚勿扰

本文最后更新于:2021.08.21 18:57,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老梁微信咨询

最近感觉网站反映有些慢,现在也不知道哪里问题,今天打开PHP看看日志,发现了好多的错误,错误如下

[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 等等之类的,这就是错误方向;

首先分析验证问题:

  1. 报警级别“WARNING”,也就是说业务受到的影响比较小,实际验证也是这样。
  2. 日志第二条还提到了并发数达到设定的16 32之类的,需要提升。
  3. php-fpm的进程数比较少,建议增加 pm.start_servers, or pm.min/max_spare_servers
  4. 增加到多少呢?spawning 8,也就是说至少得8个进程;

怎么去解决此问题呢?如果你是用的BT宝塔面板,直接在PHP设置→性能调整里面把并发数调到一个大的数字即可,比如100并发;如下图

如无宝塔,自己配置的服务器那么找到php-fpm.conf这个文件,把以下数值修改到合适的数值即可:

pm.max_children = 50 --允许创建的最大子进程数
pm.start_servers = 15 --起始进程数(服务启动后初始进程数量)
pm.min_spare_servers = 15 --最小空闲进程数(清理空闲进程后的保留数量)
pm.max_spare_servers = 35 --最大空闲进程数(当空闲进程达到此值时清理)

注意:上面的数值请根据的网站的访问量来修改。

延伸阅读:自己搭建服务器解决方法

第一步:执行命令:

ps -ef  | grep php

可以得到当前的php-fpm进程数以及php-fpm.conf配置文件位置。

这里肯定是只有20个进程数

第二步:修改 php-fpm.conf 文件

由于我用的是 pm = dynamic,再加上php-fpm.log有一个提示:spawning 32,其它的都是spawning 8,因此我个人设置如下:

pm.start_servers = 20;
pm.min_spare_servers = 20;
pm.max_spare_servers = 42;
pm = dynamic 如何控制子进程,选项有static和dynamic

pm.max_children:静态方式下开启的php-fpm进程数量

pm.max_requests:php-fpm子进程能处理的最大请求数

pm.start_servers:动态方式下的起始php-fpm进程数量

pm.min_spare_servers:动态方式下的最小php-fpm进程数

pm.max_spare_servers:动态方式下的最大php-fpm进程数量

区别:

如果pm设置为 static,那么,其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。

如果pm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。

第三步:重启php-fpm验证结果与持续观察

1、杀掉php-fpm所有的进程

pkill -9 php-fpm

2、重启php-fpm

cd /usr/local/php
./sbin/php-fpm

3、经过我后续观察php-fpm日志,未发现类似日志出现。

如需博主协助处理(收费),请加微信2589053300(非诚勿扰) --更多请关注:老梁`s Blog

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

支付宝赞助
微信赞助

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net

转载请注明-老梁`s Blog(老梁博客,老梁IT技术博客) » 宝塔控制面板内PHP报WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)错误的解决办法

发表评论

本站承接,网站推广(SEM,SEO),软件的安装的安装与调试,服务器的推荐以及配置,APP的开发与维护,网络或者web维护;财务软件,客户管理系统,人力资源,超市POS,医药管理,服务器安全,ecshop,金蝶,用友,管家婆;

立即查看 了解详情