php7: php-fpm seems busy提示

查看:169
本文介绍了php7: php-fpm seems busy提示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

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

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

cat /proc/sys/net/core/somaxconn

改动的话可以

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

这篇关于php7: php-fpm seems busy提示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆