nginx优化之request_time 和upstream_response_time差别
2016-04-15 18:50
627 查看
转自:http://blog.sina.com.cn/s/blog_4f9fc6e10102uxib.html
这几天在优化服务器的响应时间,为了方便的知道响应时间,打算吧request_time输出都页面头部,让大家都能看到,便于优化,但是直接使用,不行,百度一下,没有发现解决办法,不过看到这个文章,觉得不错,转载一下。
下面转载自:http://wuzhangshu927.blog.163.com/blog/static/114224687201310674652147/
笔者在根据nginx的accesslog中$request_time进行程序优化时,发现有个接口,直接返回数据,平均的$request_time也比较大。原来$request_time包含了用户数据接收时间,而真正程序的响应时间应该用$upstream_response_time。
下面介绍下2者的差别:
1、request_time
官网描述:request processing time in seconds with a millisecondsresolution; time elapsed between the first bytes were read from theclient and the log write after the last bytes were sent to theclient 。
指的就是从接受用户请求的第一个字节到发送完响应数据的时间,即包括接收请求数据时间、程序响应时间、输出
响应数据时间。
2、upstream_response_time
官网描述:keeps times of responses obtained from upstream servers;times are kept in seconds with a milliseconds resolution. Severalresponse times are separated by commas and colons like addresses inthe $upstream_addr variable
是指从Nginx向后端(php-cgi)建立连接开始到接受完数据然后关闭连接为止的时间。
从上面的描述可以看出,$request_time肯定比$upstream_response_time值大,特别是使用POST方式传递参数时,因为Nginx会把requestbody缓存住,接受完毕后才会把数据一起发给后端。所以如果用户网络较差,或者传递数据较大时,$request_time会比$upstream_response_time大很多。
所以如果使用nginx的accesslog查看php程序中哪些接口比较慢的话,记得在log_format中加入$upstream_response_time。
这几天在优化服务器的响应时间,为了方便的知道响应时间,打算吧request_time输出都页面头部,让大家都能看到,便于优化,但是直接使用,不行,百度一下,没有发现解决办法,不过看到这个文章,觉得不错,转载一下。
下面转载自:http://wuzhangshu927.blog.163.com/blog/static/114224687201310674652147/
笔者在根据nginx的accesslog中$request_time进行程序优化时,发现有个接口,直接返回数据,平均的$request_time也比较大。原来$request_time包含了用户数据接收时间,而真正程序的响应时间应该用$upstream_response_time。
下面介绍下2者的差别:
1、request_time
官网描述:request processing time in seconds with a millisecondsresolution; time elapsed between the first bytes were read from theclient and the log write after the last bytes were sent to theclient 。
指的就是从接受用户请求的第一个字节到发送完响应数据的时间,即包括接收请求数据时间、程序响应时间、输出
响应数据时间。
2、upstream_response_time
官网描述:keeps times of responses obtained from upstream servers;times are kept in seconds with a milliseconds resolution. Severalresponse times are separated by commas and colons like addresses inthe $upstream_addr variable
是指从Nginx向后端(php-cgi)建立连接开始到接受完数据然后关闭连接为止的时间。
从上面的描述可以看出,$request_time肯定比$upstream_response_time值大,特别是使用POST方式传递参数时,因为Nginx会把requestbody缓存住,接受完毕后才会把数据一起发给后端。所以如果用户网络较差,或者传递数据较大时,$request_time会比$upstream_response_time大很多。
所以如果使用nginx的accesslog查看php程序中哪些接口比较慢的话,记得在log_format中加入$upstream_response_time。
相关文章推荐
- nginx+php-fpm日志分析
- Centos7安装nginx
- nginx配置文件【转载】
- 关于nginx keep-alive 参数的验证和心得
- nginx正则说明
- LNMP 配置NGINX 支持THINKPHP PATHINFO模式
- nginx + gevent + django高并发配置
- nginx信号的实现
- Django笔记 生产环境部署 gunicorn+nginx+supervisor
- nginx全局变量实例对照 rewrite参考手册
- Nginx 实现AJAX跨域请求
- Nginx 微调:性能优化指南
- CentOS6 简易编译安装nginx
- 源码nginx+php 7.0+mysql搭建WordPress
- Nginx安装部署
- 企业级Nginx Web 服务优化实战
- nginx配置文件 -详解
- nginx定时器的实现
- Centos 6.5 编译安装Nginx+php+Mysql
- nginx源码分析之main