我们正在通过 jmeter 对我们的应用程序进行负载测试。
架构是:Web服务器(Apache),应用服务器(jboss),数据库(MySQL)。
Dynatrace 代理在应用服务器中配置。
对于任何特定请求,应用服务器中显示的响应时间小于 1 秒,但在 jmeter 报告中显示超过 5 秒。
上述行为的可能原因是什么。
我应该执行哪些下一步才能找到瓶颈。
我们正在通过 jmeter 对我们的应用程序进行负载测试。
架构是:Web服务器(Apache),应用服务器(jboss),数据库(MySQL)。
Dynatrace 代理在应用服务器中配置。
对于任何特定请求,应用服务器中显示的响应时间小于 1 秒,但在 jmeter 报告中显示超过 5 秒。
上述行为的可能原因是什么。
我应该执行哪些下一步才能找到瓶颈。
检查这个词汇表,前三个参数描述(Elapsed Time, Latency, Connect Time)。
这就是 JMeter 正在衡量的方面——显然,这是客户端。而 Dynatrace 仅测量服务器端处理。
因此,这两个数字都是合法的,并为您提供了重要线索-您只需正确阅读即可。
有了这些数字,您可能想深入了解两者之间发生的事情,以及这种差异的来源。
简而言之,介于两者之间:网络;服务器的标准组件(OS & JBoss),包括那些服务于网络的东西;客户也一样;和 JMeter 本身。
为了获得该路径的第一条线索,我建议您在您的 JMeter 主机上设置嗅探代理(例如 Fiddler),管理通过它的所有流量,并查看它在网络操作的详细时间统计中显示的内容。
这样,您就可以将 JMeter作为一个因素排除在外,这样您就可以看到它带来了多少。
当然是不同的,这是正常的!
JBoss 和数据库之间(请求+响应)的处理时间需要 1 秒。
JMeter 和数据库之间(请求+响应)的处理时间需要 5 秒。
Dynatrace 显示的响应时间是 Jboss 和数据库之间计算的时间(第一个请求和最后一个响应之间花费的时间)。
JMeter显示的响应时间是JMeter和数据库之间计算的时间:时间整合JMeter和你的Jboss之间的响应时间+ Jboss和数据库之间的RT。与您的情况一样,它必须大于 Dynatrace 的响应时间(5 秒对 1 秒)。
这是什么意思 ?
这意味着您在 JMeter 和 Jboss 之间浪费时间(5-1 = 4 秒),比 WAS 和数据库之间的处理时间多 4 => 调整 Web 服务器和 WAS 可以减少第一次花费的时间。 .