Jmeter 如何测量以微秒为单位的延迟

问题描述 投票:0回答:2

我们正在使用 jmeter 命令行对客户端和服务器之间的 http 和 https 请求运行负载测试。

jmeter -n -t /tmp/jmeter/https_test.jmx -f -S /tmp/jmeter/jmeter.properties -j /tmp/jmeter/jmeter-http-50.log -l /tmp/jmeter/result-http-50.csv -JProtocol=http -JPort=80 -Jip_address=10.2.1.4 -Jthread_num=50 -Jloop_count=20000

现在延迟报告的默认测量单位是毫秒。就像下面这样

`时间戳、已过去、标签、响应代码、响应消息、线程名称、数据类型、成功、失败消息、字节、sentBytes、grpThreads、所有线程、URL、延迟、空闲时间、连接

`1714506750052,79,HTTPs 请求,200,确定,线程组 1-1,文本,true,,859,111,3,3,https://10.2.1.4/,79,0,74 1714506750135,2,HTTPs 请求,200,OK,线程组 1-1,text,true,,859,111,3,3,https://10.2.1.4/,2,0,0``

有没有办法以微秒为单位测量延迟? 我从网上发现我需要更新 jmeter.properties 以允许测量以微秒为单位。但我无法在 jmeter 用户手册中找到。有人可以帮我吗?

jmeter
2个回答
0
投票

如果您查看聚合报告侦听器文档

时间以毫秒为单位。

请参阅 使用 JMeter 聚合报告侦听器分析 JMeter 测试结果一文,了解指标是什么以及它们的含义。

JMeter 5.6.3开始,连接时间、经过时间和延迟均以毫秒精度测量,没有简单的方法将其切换到微秒,您可以尝试请求增强功能,更多人会投票支持此功能功能更有可能被实现。


0
投票

如果您在虚拟机上运行,则虚拟系统时钟上的浮动将破坏此类测量中的任何完整性。简而言之,发生的情况是虚拟机中的时钟相对于机器时钟浮动。虚拟机时钟定期与物理机时钟“同步”,导致时钟跳跃,因为降级时钟与物理机时钟合一。这种情况发生在几微秒的时间内,但根据系统的繁忙程度,您会发现最多几秒的跳跃。

这体现在更高的平均值、最大值、标准差、第 90 个百分位数......。在虚拟机与物理机上。这不仅会影响负载生成器,影响测试的可重复性,还会影响运行 Web/应用程序服务器的虚拟机,这些服务器会在日志中收集时间值,并由深度诊断工具收集计时,以测量开始时间戳和结束时间戳之间的差异(精确到毫秒) ,以及数据库记录捕获的“何时”发生某事的时间戳。

如果您希望以高度完整性捕获到您想要的水平,那么您可以从全物理硬件定义开始。除了 Java 或 .Net 变体之外,没有虚拟机在操作系统内部运行。

© www.soinside.com 2019 - 2024. All rights reserved.