【问题标题】:unable to increase average throughput in jmeter无法增加 jmeter 的平均吞吐量
【发布时间】:2017-02-28 09:47:45
【问题描述】:

我已将线程数和加速时间设置为 1/1,并且我正在从 data.csv 迭代我的 1000 条记录 1800 秒。 现在给定数字,我已将 CTT、恒定时间吞吐量设置为每分钟 2000,我预计平均吞吐量为 2000/60 = 33.3/秒,但当我将吞吐量增加到 4000/60 时,我得到 18.7/秒,我仍然得到 18 或 19/秒。

【问题讨论】:

  • 为了获得足够的吞吐量,CTT 需要足够的线程。尝试增加线程。
  • 我认为线程 1000 太多了。尽可能多地使用。正如你提到的,也许 ~100 就足以达到 33.3/秒的吞吐量。并且尽量不要将加速时间设为 0。
  • 我现在已将其设置为 100/6,CTT 设置为 4000/min,平均吞吐量为 13.5/s、6/s、7.3/s,而我希望这会有所改善,但我没有了解黑白线程/秒和 CTT 的关系,我认为 CTT 会覆盖线程/秒数

标签: jmeter


【解决方案1】:

恒定吞吐量定时器不能强制线程执行得更快,它只能暂停线程来限制 JMeter的吞吐量到定义的值。

每个 JMeter 线程都尽可能快地执行采样器,但是下一次迭代要等到前一次完成后才会开始,因此假设您使用 1 个线程 - 吞吐量不会高于应用程序响应时间。

还要注意,恒定吞吐量计时器在 分钟 级别上足够准确,因此如果您的测试时间短于 1 分钟,您可以更愿意操纵“每分钟请求数”而不是“每秒请求数” -考虑使用Throughput Shaping Timer

所以我建议将虚拟用户的数量增加到 50 个。

有关详细信息,请参阅How to use JMeter's Constant Throughput Timer

【讨论】:

    【解决方案2】:

    我猜您的应用程序平均响应时间约为 50 毫秒。这意味着单个线程只能执行大约 20 次命中/秒(1 秒 / 0.05 秒每次命中 = 20 次命中/秒)。

    您有 2 个解决方案:

    • 增加线程数以并行化发送的请求,
    • 或让您的应用响应更快(显然更难)。

    在某些时候,当您的应用程序无法处理更多负载时,您应该会看到命中/秒下降和平均响应时间增加。

    下图显示了一个应用程序示例,该应用程序具有稳定的响应时间,最多有 20 个并发线程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多