网络 – 为什么request_time比nginx access.log中的upstream_response_time大得多?

前端之家收集整理的这篇文章主要介绍了网络 – 为什么request_time比nginx access.log中的upstream_response_time大得多?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在努力提高网络应用的性能.分析应用程序本身,我发现它的响应时间是可以接受的(100ms-200ms),但是当我使用ApacheBench测试应用程序时,响应时间有时超过1秒.当我仔细查看日志时,偶尔发现request_time和upstream_response_time之间存在很大差异:

@H_502_5@"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).然而,这些并不一定会产生很大的不同,因为内核可以很好地为您调整它们.

猜你在找的Nginx相关文章