php7: php-fpm seems busy提示
高洛峰
高洛峰 2017-04-11 09:48:33
[PHP讨论组]

php-fmp时不时有502的报错,查到php-fpm.log有WARNING,如下:

[17-Jan-2017 14:38:06] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 170 idle, and 237 total children
[17-Jan-2017 14:38:07] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 177 idle, and 245 total children

php-fpm.conf的配置:

[www]
listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 800
pm.start_servers = 230
pm.min_spare_servers = 180
pm.max_spare_servers = 360
request_terminate_timeout = 300
request_slowlog_timeout = 300
slowlog = var/log/slow.log
rlimit_files = 51200

其中max_spare_servers不是已经大于上面WARNING的值吗? 为什么总是会有502

pm.max_children = 800
pm.start_servers = 230
pm.min_spare_servers = 180
pm.max_spare_servers = 360
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
PHPz

看一下net.core.somaxconn这个值,它定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128;如果这个值过小,是会造成这种情况的,毕竟我看到你的日志中,idel的进程其实还有不少,说明不是进程不够,而是进程根本还没有起作用就已经有问题了。

你可以通过下面这个命令查看:

cat /proc/sys/net/core/somaxconn

改动的话可以

echo 1000 >/proc/sys/net/core/somaxconn
迷茫

@akay

最近又有2次seems busy的报错。

上次net.core.somaxconn这个值已经更新,如下:

cat /proc/sys/net/core/somaxconn
32768

php-fpm.conf的配置目前如下:

[www]
listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 800
pm.start_servers = 320
pm.min_spare_servers = 180
pm.max_spare_servers = 360
pm.max_requests = 102400
request_terminate_timeout = 300
request_slowlog_timeout = 300
slowlog = var/log/slow.log
rlimit_files = 51200

最近还是有2次seems busy的报错。

[10-Feb-2017 14:07:40] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 179 idle, and 334 total children
[10-Feb-2017 14:07:45] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 179 idle, and 338 total children
[10-Feb-2017 14:07:46] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 179 idle, and 339 total children
[10-Feb-2017 14:07:47] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 178 idle, and 340 total children
[10-Feb-2017 14:07:48] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 179 idle, and 342 total children
[13-Feb-2017 23:49:22] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 153 idle, and 327 total children
[13-Feb-2017 23:49:23] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 158 idle, and 335 total children
[13-Feb-2017 23:49:24] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 173 idle, and 351 total children
[13-Feb-2017 23:49:25] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 167 idle, and 358 total children

这又是怎么回事?

阿神

pm.max_children = 800
pm.start_servers = 320
pm.min_spare_servers = 180
pm.max_spare_servers = 360

这个配置 ... 太大了....

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号