首页 > 后端开发 > php教程 > nginx - 页面异步多个http请求,php后台接口响应慢,如何进行问题定位?

nginx - 页面异步多个http请求,php后台接口响应慢,如何进行问题定位?

WBOY
发布: 2016-06-06 20:07:13
原创
1480 人浏览过

1.问题情况:在前台页面中通过ajax异步进行5个http请求后台php的接口获取数据,这5个接口在chrom浏览器下显示等待响应的耗时都超过1秒,每次刷新页面,这5个请求的耗时都是不定的,但就是响应慢,但是如果将这5个后台接口单独在浏览器中访问的话响应时间都在几百毫秒内!
如图:
nginx - 页面异步多个http请求,php后台接口响应慢,如何进行问题定位?

2.服务器使用的是阿里云,nginx+php-fpm,一直怀疑是php-fpm开启的进程数不够,但是已经将最大的允许进程数设置到20,(php-fpm.conf的配置)如下图:
nginx - 页面异步多个http请求,php后台接口响应慢,如何进行问题定位?

3.出现这样的情况应该如何去定位问题?是nginx的问题还是php-fpm的问题,如何去判断这些http延迟的问题??

回复内容:

1.问题情况:在前台页面中通过ajax异步进行5个http请求后台php的接口获取数据,这5个接口在chrom浏览器下显示等待响应的耗时都超过1秒,每次刷新页面,这5个请求的耗时都是不定的,但就是响应慢,但是如果将这5个后台接口单独在浏览器中访问的话响应时间都在几百毫秒内!
如图:
nginx - 页面异步多个http请求,php后台接口响应慢,如何进行问题定位?

2.服务器使用的是阿里云,nginx+php-fpm,一直怀疑是php-fpm开启的进程数不够,但是已经将最大的允许进程数设置到20,(php-fpm.conf的配置)如下图:
nginx - 页面异步多个http请求,php后台接口响应慢,如何进行问题定位?

3.出现这样的情况应该如何去定位问题?是nginx的问题还是php-fpm的问题,如何去判断这些http延迟的问题??

PHP-FPM支持像MySQL那样的慢日志,可以在php-fpm.conf中这样配置,超过1秒的请求记录下来:

<code>slowlog = var/log/$pool.log.slow
request_slowlog_timeout = 1
</code>
登录后复制

一般来说,耗时比较久的请求一般都是file_get_contents和curl这类从服务器发出的网络请求调用.

1.好奇,看起来5个请求URL是一样的,考虑能不能整合成一个或尽可能少
2.浏览器控制台里看一下每一个请求所耗时间哪里比较多,是发送请求慢,还是等待响应慢,还是接收数据慢

一点点个人想法 :

  1. 多个同样请求 ,会不会造成资源竞争, 比如select for update ,

  2. nginx本身是单线程, 基于事件循环 , 如果callback 函数非常耗资源也会影响整个服务的性能,毕竟单线程

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板