1. 问题描述
- 系统采用前段一层框架+php两层框架+底层restfull api。发现访问页面前段非常慢,在超过1分钟的时间之后才有一个504的错误。
2. 问题排查
- 重启nginx和php-fpm,问题依旧。
- 重启nginx和php-fpm,访问下一层php框架资源,可以。访问nginx default站点临时写的Hello world 里的 index.php可以。访问前段框架,不行。再访问下一层php框架,不行,Hello world不行。
所以可以确定是由于前台框架引起的问题。
- 重启php-fpm,访问Hello world发现可以,访问前台框架不可以。再访问Hello world发现不可以。
可以确定是前台框架造成php-fpm崩溃。
3.问题解决
/etc/php5/fpm/pool.d/www.conf
非apt安装,或者其他linux发行版也可能是其他路径,或者叫做php-fpm.conf。但是只需找到以下几个参数,其中最重要的是:
pm.max_children = 5
改为合适的值,开发环境可以调成500.
4. 其他
- Nginx日志文件只有服务启动/重启的时候才会重新创建。
- 排查一般Nginx日志,首先看access是否有日志,没有可能是nginx有问题,去error日志看。如果是5xx日志,程序问题,去看error看;如果5xx错误,error日志里没有,就是本文所讲的,很可能是php-fom,或者解析php的apache/hhvm的问题了。