php-fpm子进程莫名增多

吃益达的人 发布于 2016/10/22 10:19
阅读 693
收藏 0

最近两天凌晨0点 服务器经常出现大量502  从阿里云后台监控来看 基本所有正常访问用户都是返回502

昨天登了一下服务器  用netstat -napo |grep "php-fpm" | wc -l这条命令查到 php-fpm的进程数已经到达380多 (平时基本在10个左右)  目前无法排查问题 请问有什么好的方案来排查   

看过php-fpm.log  无记录

加载中
0
朱__朱
朱__朱
代码里有阻塞,导致进程被占用不能快速结束执行释放进程。
吃益达的人
吃益达的人
是这样的 平时都没问题 出问题的时候只有昨天凌晨和今天凌晨 并且 我重启php-fpm之后 问题瞬间就好了 在接下来的一段时间没有在产生问题 如何去排查呢
0
yak
yak
index.php 开始记录时间,index.php结束纪录时间,同时记下url 看看哪个url对应的流程耗时最长,然后优化对应的业务代码
吃益达的人
吃益达的人
是这样的 网站业务比较单一 流量大部分都是seo过来的 所以最终页面基本都是同一个
0
eechen
eechen
php-fpm.conf里提供有慢日志记录:
slowlog = var/log/$pool.log.slow
request_slowlog_timeout = 1
以上意思就是超过1秒的操作都会记录下来,比如:
echo shell_exec('curl -I http://www.youtube.com');
[10-Mar-2016 11:07:33]  [pool www] pid 11618
script_filename = /png/www/example.com/public_html/app/info.php
[0x00007fdd62f29260] shell_exec() /png/www/example.com/public_html/app/info.php:2
吃益达的人
吃益达的人
回复 @eechen : 慢日志也开了 还是查不到问题 开了满日志 每天出问题的时候 所有的访问都会很慢所以都被记录进去了 太多了查不到 每天大概0:05 的时候 进程多三四百个的时候 cpu会被沾满 而且 没有占cpu很高的进程
吃益达的人
吃益达的人
慢日志也开了 还是查不到问题 开了满日志 每天出问题的时候 所有的访问都会很慢所以都被记录进去了 太多了查不到 每天大概0:05 的时候 进程多三四百个的时候 cpu会被沾满 而且 没有占cpu很高的进程
吃益达的人
吃益达的人
好 谢谢大神
eechen
eechen
补充:有阻塞的操作(典型的curl请求外部接口)我建议你分离到一个单独的PHP-FPM进程池并且设定curl的超时时间,以免影响主干服务,具体操作可以看 https://my.oschina.net/eechen/blog/541139
返回顶部
顶部