502 是后端PHP 资源被耗尽,无法应对前端nginx 的请求才会出现的。是什么原因导致页面直接502 呢?
按照处理故障的常规思路,检查nginx 的log, 发现:
unix:/home/php/php-fastcgi.sock failed (11: Resource temporarily unavailable)
果然是资源耗尽啊。这个站点的访问量不是很高,没什么压力可言,看了一下系统资源情况,都没去到30%。
怀疑资源没有释放,果断重启了一下php 程序,访问还是直接502。pstree 观察了一下,发现有不对劲的地方(由于
急于处理故障,这个图是后面再次观察的,原图的php-fpm 是
init --+
|
php-fpm---50*[php-fpm]
|-50*[php-fpm]

不仔细看看还真发现不了,这下面的 9*-[php-fpm] 可以看到是直接变成了 init 生成的,正常启动的php-fpm 进程是由
php-fpm 生成的。重启php-fpm 只能kill 掉那自身的子进程,进化到init 下的,就处理不了。
如下操作,killall php-fpm && /etc/init.d/php-fpm start
再观察服务的访问已经正常了,用pstree 再看看进程情况,正常。

没有评论:
发表评论