您的位置:首页 > 编程语言 > PHP开发

php-fpm进程暴增问题处理

2013-03-01 13:16 309 查看
昨天早上上班,同事反映论坛打开很慢赶紧用阿里测,结果是前面接收请求很慢,接收第一个请求需要5秒,把整个页面完全加载出来需要7秒多的时间查看各服务器的负载,内存都正常查看nginx的错误日志,有大量的连接拒绝的日志信息2013/02/28 09:51:58 [error] 3243#0: *67791623 connect() failed (111: Connection refused) while connecting to upstream, client: 120.204.196.186, server: bbs.lynn.cn, request: "GET /forum-155-1.html HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "bbs.lynn.cn"
重启nginx和php,瞬间很快,但马上又慢了监控php-fpm的信息,发现php的进程暴增

php-fpm.conf,都采用的是默认的配置同事说可以加大一下rlimit_files的设置rlimit_files = 51200pm.max_requests = 1024ulimit -n 51200重启PHP,情况依旧,还是很慢
又继续查,nginx,php,数据库连接,查询是否慢全部都很正常啊,崩溃啊然后同事提醒了一下,说有一段代码可能是有问题,先注释看看在130上面把代码注释,响应很快,在131上没有注释,找开要很久很久难道就是这段代码有问题?查看了下监控的php的进程数,130是有100多个,131是保持在51个灵光一闪,可能不是代码的原因,是PHP配置的问题
于是果断修改PHP的配置pm.max_children = 150 #默认配置是50再重启PHP,测试,OK,打开页面很快了再查看监控的PHP的进程,每一台服务器大概都在120个左右
现在打开页面很快了,但是登录还是很慢,很次登录大概需要2-3分钟的时候后来PHPER一直查,原来是有一段代码有问题,修改,提交,上传,同步OK,登录的问题也解决了再看监控的PHP的进程,每一台服务器大概在30个左右,又恢复正常了
总结:这次的主要问题是因为编辑更改了论坛的后台,导致登录慢的因为页面的所有请求都是经过nginx,nginx再把请求转给PHP而前面代码的问题,导致php的进程都被占用了没有释放出来那后面打开页面神马的请求,就一直在等待前面的进程释放释放,所以很慢增大了pm.max_children,可以让PHP有更多的进程来处理nginx的请求
这个问题,一开始的时候就跟他们提说PHP的进程要比平时多很多,但是一直没有想到是这个问题引起记录一下
本文出自 “lynnteng0” 博客,请务必保留此出处http://lynnteng0.blog.51cto.com/2145094/1143033
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: