JMeter 日志中的请求和线程理解
Requests and Threads understanding in JMeter logs
我仍然对此处显示的一些 JMeter 日志感到困惑。有人可以给我一些启发吗?
下面是 JMeter 为我的测试生成的日志。
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 1 in 00:00:02 = 0.5/s Avg: 1631 Min: 1631 Max: 1631 Err: 0 (0.00%) Active: 2 Started: 2 Finished: 0
summary + 218 in 00:00:25 = 8.6/s Avg: 816 Min: 141 Max: 1882 Err: 1 (0.46%) Active: 10 Started: 27 Finished: 17
summary = 219 in 00:00:27 = 8.1/s Avg: 820 Min: 141 Max: 1882 Err: 1 (0.46%)
summary + 81 in 00:00:15 = 5.4/s Avg: 998 Min: 201 Max: 2096 Err: 1 (1.23%) Active: 0 Started: 30 Finished: 30
summary = 300 in 00:00:42 = 7.1/s Avg: 868 Min: 141 Max: 2096 Err: 2 (0.67%)
Tidying up ... @ Fri Jun 09 04:19:15 IDT 2017 (1496971155116)
此日志是否意味着 [最后一步] 触发了 300 个请求,整个测试耗时 00.00:42 秒,触发了 7.1 threads/sec 或 7.1 requests/sec?
如何确保提高TPS?相同的测试是在不同的站点进行的,他们在同一台服务器上进行相同的测试时获得了 132TPS。有人可以对此有所了解吗?
在这里,请求总数为 300。吞吐量为每秒 7 个请求。这 300 个请求由您在线程组配置中给定数量的线程生成。您还可以在日志结果中查看活动线程数。这些线程是否激活取决于您的启动时间。
加速时间是用户或线程到达您的应用程序的速度。
查看示例:
您可以在脚本中提供足够的持续时间,并永远检查循环计数,这样所有线程都会在您的应用程序服务器中触发这些请求,直到测试完成。
当服务器上的所有线程都处于活动状态时,它们将命中服务器中的那些请求。
要增加 TPS,您必须增加线程数,因为这些线程将满足您在服务器中所需的请求。
这也取决于您的请求的响应时间。
假设,
如果您有 500 个虚拟用户并且应用程序响应时间为 1 秒 - 您将有 500 RPS
如果您有 500 个虚拟用户并且应用程序响应时间为 2 秒 - 您将有 250 RPS
如果您有 500 个虚拟用户并且应用程序响应时间为 500 毫秒 - 您将有 1000 RPS。
首先,一点理论:
- 您有 Sampler(s) 应该模仿真实的用户操作
- 您在 Thread Group 下定义了模仿真实用户的线程(虚拟用户)
JMeter 启动 threads 以尽可能快的速度执行 samplers 并生成一定数量的 每秒请求数。此 "request per second" 值取决于 2 个因素:
- 虚拟用户数
- 您的应用程序响应时间
JMeter Summarizer doesn't tell the full story, I would recommend generating the HTML Reporting Dashboard 来自 .jtl 结果文件,它将提供更全面的负载测试结果数据,更容易通过表格和图表进行分析,可以像这样简单地完成:
jmeter -g /path/to/testresult.jtl -o /path/to/dashboard/output/folder
查看当前结果,您实现了 7.1 请求 秒的最大吞吐量,平均响应时间为 868 毫秒。
因此,为了拥有更多 "requests per second",您需要增加 "virtual users" 的数量。如果您增加虚拟用户的数量并且 "requests per second" 没有增加 - 这意味着您确定了所谓的 saturation point 并且您的应用程序无法处理更多。
我仍然对此处显示的一些 JMeter 日志感到困惑。有人可以给我一些启发吗?
下面是 JMeter 为我的测试生成的日志。
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 1 in 00:00:02 = 0.5/s Avg: 1631 Min: 1631 Max: 1631 Err: 0 (0.00%) Active: 2 Started: 2 Finished: 0
summary + 218 in 00:00:25 = 8.6/s Avg: 816 Min: 141 Max: 1882 Err: 1 (0.46%) Active: 10 Started: 27 Finished: 17
summary = 219 in 00:00:27 = 8.1/s Avg: 820 Min: 141 Max: 1882 Err: 1 (0.46%)
summary + 81 in 00:00:15 = 5.4/s Avg: 998 Min: 201 Max: 2096 Err: 1 (1.23%) Active: 0 Started: 30 Finished: 30
summary = 300 in 00:00:42 = 7.1/s Avg: 868 Min: 141 Max: 2096 Err: 2 (0.67%)
Tidying up ... @ Fri Jun 09 04:19:15 IDT 2017 (1496971155116)
此日志是否意味着 [最后一步] 触发了 300 个请求,整个测试耗时 00.00:42 秒,触发了 7.1 threads/sec 或 7.1 requests/sec?
如何确保提高TPS?相同的测试是在不同的站点进行的,他们在同一台服务器上进行相同的测试时获得了 132TPS。有人可以对此有所了解吗?
在这里,请求总数为 300。吞吐量为每秒 7 个请求。这 300 个请求由您在线程组配置中给定数量的线程生成。您还可以在日志结果中查看活动线程数。这些线程是否激活取决于您的启动时间。
加速时间是用户或线程到达您的应用程序的速度。
查看示例:
您可以在脚本中提供足够的持续时间,并永远检查循环计数,这样所有线程都会在您的应用程序服务器中触发这些请求,直到测试完成。
当服务器上的所有线程都处于活动状态时,它们将命中服务器中的那些请求。
要增加 TPS,您必须增加线程数,因为这些线程将满足您在服务器中所需的请求。
这也取决于您的请求的响应时间。
假设,
如果您有 500 个虚拟用户并且应用程序响应时间为 1 秒 - 您将有 500 RPS
如果您有 500 个虚拟用户并且应用程序响应时间为 2 秒 - 您将有 250 RPS
如果您有 500 个虚拟用户并且应用程序响应时间为 500 毫秒 - 您将有 1000 RPS。
首先,一点理论:
- 您有 Sampler(s) 应该模仿真实的用户操作
- 您在 Thread Group 下定义了模仿真实用户的线程(虚拟用户)
JMeter 启动 threads 以尽可能快的速度执行 samplers 并生成一定数量的 每秒请求数。此 "request per second" 值取决于 2 个因素:
- 虚拟用户数
- 您的应用程序响应时间
JMeter Summarizer doesn't tell the full story, I would recommend generating the HTML Reporting Dashboard 来自 .jtl 结果文件,它将提供更全面的负载测试结果数据,更容易通过表格和图表进行分析,可以像这样简单地完成:
jmeter -g /path/to/testresult.jtl -o /path/to/dashboard/output/folder
查看当前结果,您实现了 7.1 请求 秒的最大吞吐量,平均响应时间为 868 毫秒。
因此,为了拥有更多 "requests per second",您需要增加 "virtual users" 的数量。如果您增加虚拟用户的数量并且 "requests per second" 没有增加 - 这意味着您确定了所谓的 saturation point 并且您的应用程序无法处理更多。