zoukankan      html  css  js  c++  java
  • nginx优化之request_time 和upstream_response_time差别

      

    笔者在根据nginx的accesslog中$request_time进行程序优化时,发现有个接口,直接返回数据,平均的$request_time也比较大。原来$request_time包含了(服务器)接收用户数据的时间,而真正程序的响应时间应该用$upstream_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)建立连接开始到接受完数据然后关闭连接为止的时间。

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

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

    http://wuzhangshu927.blog.163.com/blog/static/114224687201310674652147/

    --希望是生命的瑰丽朝霞,我们应当在希望中生活,并在希望中奋进,去开拓我们的人生之路。
  • 相关阅读:
    计算机网络为什么是这样样子?
    MySQL技术内幕 InnoDB存储引擎 B+树索引的使用 笔记
    后端性能-batch 化的想法
    稳定高效的服务来自于稳定而合理的数据结构
    gRPC 学习了解记录
    Go 进阶训练营 Week02: error 错误处理
    生活小感受
    Nginx 499 排查到docker 中一个进程一直在空转
    方法论和原理总结
    Debug
  • 原文地址:https://www.cnblogs.com/nulisaonian/p/6043959.html
Copyright © 2011-2022 走看看