gpt4 book ai didi

networking - 为什么nginx access.log中的request_time比上游_response_time大得多?

转载 作者:行者123 更新时间:2023-12-04 00:46:38 26 4
gpt4 key购买 nike

我正在尝试提高Web应用程序的性能。对应用程序本身进行性能分析,我发现它的响应时间是可以接受的(100ms-200ms),但是当我使用ApacheBench测试应用程序时,响应时间有时会超过1秒。当我仔细查看日志时,偶尔发现request_timeupstream_response_time之间存在很大差异:

"GET /wsq/p/12 HTTP/1.0" 200 114081 "-" "ApacheBench/2.3" 0.940 0.286
"GET /wsq/p/31 HTTP/1.0" 200 114081 "-" "ApacheBench/2.3" 0.200 0.086


upstream_response_time非常接近我在Web应用程序中的配置文件,但是对于第一个请求, request_time接近一秒钟。

是什么导致这种差异?

我了解 request_time是从收到的第一个字节到发送的最后一个响应字节记录的,它可能会受到网络状况和客户端问题的影响。我想知道应该怎么做才能尽可能降低平均 request_time

最佳答案

request_time较高可能是由于客户端连接速度较慢,您对此无能为力。因此,高request_time不一定代表服务器和/或应用程序的性能。

在进行概要分析时,您实际上不应该在request_time上花费太多时间,而应该测量诸如应用程序的响应时间(即upstream_response_time)之类的东西。

就是说,有些事情是您可以做的,并且可能会影响request_time。其中一些如下:


在高速网络上移动服务器
将服务器移到客户端附近
禁用Nagle's algorithm
调整服务器的TCP堆栈(请参见this article)。但是,由于内核在为您进行调整方面做得很好,因此它们不一定会有很大的不同。

关于networking - 为什么nginx access.log中的request_time比上游_response_time大得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37430951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com