nginx日志request_time 和upstream_response_time区别

在根据nginx的accesslog中 r e q u e s t t i m e 进 行 程 序 优 化 时 , 发 现 有 个 接 口 , 直 接 返 回 数 据 , 平 均 的 request_time进行程序优化时,发现有个接口,直接返回数据,平均的 requesttimerequest_time也比较大。原来 r e q u e s t t i m e 包 含 了 用 户 数 据 接 收 时 间 , 而 真 正 程 序 的 响 应 时 间 应 该 用 request_time包含了用户数据接收时间,而真正程序的响应时间应该用 requesttimeupstream_response_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)建立连接开始到接受完数据然后关闭连接为止的时间。

从上面的描述可以看出, r e q u e s t t i m e 肯 定 比 request_time肯定比 requesttimeupstream_response_time值大,特别是使用POST方式传递参数时,因为Nginx会把request body缓存住,接受完毕后才会把数据一起发给后端。所以如果用户网络较差,或者传递数据较大时, r e q u e s t t i m e 会 比 request_time会比 requesttimeupstream_response_time大很多。

所以如果使用nginx的accesslog查看php程序中哪些接口比较慢的话,记得在log_format中加入$upstream_response_time。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值