我正在努力改善网络应用的效果。分析应用程序本身,我发现它的响应时间是可以接受的(100ms-200ms),但是当我使用ApacheBench测试应用程序时,响应时间有时超过1秒。当我仔细查看日志时,我偶然发现request_time
和upstream_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
与我在网络应用中的分析非常接近,但第一次请求时request_time
接近一秒。
什么可能导致这种差异?
我理解request_time
是从收到的第一个字节到最后一个发送的响应字节记录的,它可能会受到网络状况和客户端问题的影响。我想知道我该怎么办才能尽可能地减少平均request_time
?
答案 0 :(得分:16)
高request_time
可能是由于连接速度较慢的客户端造成的,您无法做多。因此,高request_time
不一定表示服务器和/或应用程序的性能。
在分析时你真的不应该花费太多时间在request_time
上,而是测量应用程序的响应时间(例如upstream_response_time
)。
也就是说,有些事情你可以做,可能影响request_time
。其中一些如下: