0

我需要一些关于如何调试问题的帮助。只要我将循环计数保持在 1,我当前的 jMeter 场景似乎运行良好,当我添加更多循环时,性能开始大幅下降。

我有一个包含 225 个线程的线程组,110 秒加速,循环计数 1 - 我的总响应时间是 ca。8-9 秒。我运行了几次以确认,每次运行都显示相似的响应时间。现在,我做了同样的测试,只是将循环数改为 3,所有其他参数不变,性能下降,总响应时间为 ca。30-40 秒。

我的印象是 3x 1 循环运行或多或少相当于 1x 3 循环运行。看来这不是问题。任何人都可以向我解释为什么会这样?或者,如果这应该是等效的,知道在哪里寻找性能下降的罪魁祸首吗?

4

2 回答 2

0

您的意思是,如果您增加吞吐量(如每秒请求数),响应时间会降低。

基于 225 个线程以 110 秒的速度发出单个请求,您的吞吐量将在每秒 2 个请求的区域内。将循环计数增加到 3 将使每秒请求数增加大约 3 到 6 个(假设没有计时器)。当然,如果响应时间在增加,那么您将无法达到这个吞吐量水平,这是您的问题。

鉴于此请求已经花费了 8-9 秒,这并不是特别快,可以假设在幕后进行了一些繁重的思考,并且您只是在某个地方遇到了瓶颈......

尝试使用更少的线程和更长的加速,然后监控响应时间和吞吐率。在某些时候,随着负载的增加,您会看到响应时间开始下降,此时您需要卷起袖子,看看 AUT 中发生了什么。

笔记。3 x 1 循环与 1 x 3 循环不同。迭代之间的延迟将导致具有多个迭代的一个线程具有不同的吞吐量,而不是具有一个迭代的更多线程,其中吞吐量由斜升决定,而不是延迟。也就是说,这不是您在问题中所描述的 - 您提到线程数是一致的。

于 2012-05-28T15:08:03.317 回答
0

除了 Oliver 的回答:尝试使用自定义侦听器,例如Active Threads Over Time Listener - 来监控您的负载场景。
您还可以使用此侦听器重试上述两种方案 - 当然,您会在图表中看到差异。

于 2012-05-28T15:15:10.110 回答