转载:http://wuzhangshu927.blog.163.com/blog/static/114224687201310674652147/
笔者在根据nginx的accesslog中$request_time进行程序优化时,发现有个接口,直接返回数据
下面介绍下2者的差别:
1、request_time
官网描述:request processing time in seconds with a milliseconds resolution; time elapsed between
the first bytes were read from the client and the log write after the last bytes were sent to the client 。
指的就是从接受用户请求的第一个字节到发送完响应数据的时间,即包括接收请求数据时间、程序响应时间、输出 响应数据时间。
2、upstream_response_time
官网描述:keeps times of responses obtained from upstream servers; times are kept in seconds with a milliseconds resolution. Several response times are separated by commas and colons like addresses in the
$upstream_addr variable是指从Nginx向后端(php-cgi)建立连接开始到接受完数据然后关闭连接为止的时间。
从上面的描述可以看出,$request_time肯定比$upstream_response_time值大,特别是使用POST方式传递参数时,因为Nginx会把request body缓存住,接受完毕后才会把数据一起发给后端。所以如果用户网络较差,或者传递数据较大时,$request_time会比$upstream_response_time大很多。
所以如果使用nginx的accesslog查看php程序中哪些接口比较慢的话,记得在log_format中加入$upstream_response_time。

本文对比了Nginx中的$request_time与$upstream_response_time的区别,解释了何时使用哪个指标来更准确地评估PHP程序的性能。对于通过Nginx访问的PHP应用,了解这两个时间指标可以帮助开发者更精准地定位性能瓶颈。
2854

被折叠的 条评论
为什么被折叠?



