JMeter Sampler 结果:了解加载时间、连接时间和延迟

JMeter Sampler Result: Understanding Load time, Connect time and Latency

首先,我是 JMeter 的新手,想澄清一些关于 加载时间 连接时间 之间关系的疑问,和 延迟.

我找到了一些解释这些指标之间关系的资源:

延迟时间 – 连接时间 = 服务器处理时间

经过时间-延迟时间=下载时间 resource

然后另一个 resource 说: 响应时间 = 延迟 + 处理时间

下面是我得到的采样器结果之一。如果考虑到这一点,我们真的可以评论服务器处理请求需要多长时间吗?

注意:在这种情况下,我的计划是分析服务器必须承受多少负载。我真的不关心连接建立和数据包传递的延迟。

基本上,我想知道上述 3 个指标之间的联系:加载时间、连接时间和延迟。任何帮助是极大的赞赏。提前致谢:)

此文档解释了指标:

延迟:

  • JMeter 测量从发送请求之前到收到第一个响应之后的延迟。因此,时间包括 assemble 请求所需的所有处理以及组装响应的第一部分,这通常会超过一个字节。协议分析器(例如 Wireshark)测量字节实际上 sent/received 通过接口的时间。 JMeter 时间应该更接近浏览器或其他应用程序客户端所经历的时间。

连接时间:

  • JMeter 测量建立连接所花费的时间,包括 SSL 握手。请注意,连接时间不会自动从延迟中减去。在连接错误的情况下,指标将等于面对错误所花费的时间,例如在超时的情况下,它应该等于连接超时。

加载时间或运行时间:

  • JMeter 测量从发送请求之前到收到最后一个响应之后所经过的时间。 JMeter 不包括呈现响应所需的时间,JMeter 也不处理任何客户端代码,例如 Javascript.

您不能通过查看 JMeter 结果来说明“服务器处理请求需要多长时间”,因为:

请求生命周期如下:

  1. JMeter建立连接(连接时间)
  2. JMeter 向服务器发送请求正文(未知)
  3. 服务器处理请求(未知)
  4. 服务器向 JMeter 发送响应(未知)
  5. JMeter 收到响应的第一个字节(延迟)
  6. JMeter 收到响应的最后一个字节(经过时间)

所以你不能说服务器处理时间是多少,即使精度为毫秒,因为 JMeter 只能获得 high-level 网络指标,如果你想用服务器处理时间丰富你的报告,你需要使用 APM or a profiler tool or at least something like JMeter PerfMon Plugin 直接从被测应用程序获取这种形式的信息。

通俗地说,我会将这些术语描述如下:

加载时间:请求所用的总时间。对最终数据包的第一个请求

连接时间:请求到达服务器所用的时间

延迟:第一次响应请求所花费的时间。 (如果响应很小,这可以与加载时间相同)