【问题标题】:Limitations in achieving a target JMeter throughput value实现目标 JMeter 吞吐量值的限制
【发布时间】:2020-10-12 07:12:11
【问题描述】:

我想了解在运行时实现的实际 JMeter 吞吐量行为。

场景 - 我正在使用恒定吞吐量计时器和 beanshell 脚本在运行时增加 JMeter 吞吐量,如此处所述 - https://www.blazemeter.com/blog/how-to-change-jmeters-load-during-runtime

测试计划 - 与上述 CTT 一起,配置了具有固定 #threads 和无限循环迭代的简单线程组。使用 GET 调用的 HTTP 采样器。测试计划中没有添加其他计时器或插件。

随着我在运行时不断增加 JMeter 的目标吞吐量,我注意到实际实现的吞吐量值主要受两个因素的限制 -

  1. 我的线程组中的线程。
  2. 目标应用的性能瓶颈。

我对这两个限制都有疑问 -

  1. 一旦使用当前线程组中的所有线程实现最高吞吐量(假设目标应用程序还没有错误),有没有办法在运行时动态增加 #threads 以实现更高的 JMeter 吞吐量?

  2. 现在,随着我不断增加 JMeter 吞吐量,由于目标应用程序的错误,它无法进一步增加。 JMeter 如何识别我的目标应用程序的性能瓶颈并对其做出反应?它是否会增加任何延迟或终止线程或应用任何此类机制来将其吞吐量降低到目标应用程序可以承受的最大值?

  3. 继续第 2 点,如果 JMeter 通过任何方法识别并响应性能瓶颈,控制其吞吐量以使其保持在最大限制范围内的因素(如错误率、响应延迟等)是什么?目标应用程序?这些因素是可配置的还是可扩展的?

【问题讨论】:

    标签: jmeter jmeter-plugins jmeter-5.0 jmeter-4.0


    【解决方案1】:
    1. 您可以使用线程组中的线程数来玩同样的技巧,只需使用__P() function 定义它,您就可以使用 Beanshell 服务器对其进行操作。另一种选择是使用JSR223 Test Element and Groovy language 在需要的地方/时间添加新线程,例如:

      ctx.getThreadGroup().addNewThread(0, ctx.getEngine())
      
    2. JMeter 不会“识别”任何东西,它只是尽可能快地执行采样器,每秒的请求数取决于两个因素:

      • 您的应用程序需要能够足够快地响应
      • JMeter 本身需要能够足够快地发送请求,即您需要关注JMeter Best Practices

      没有检测被测应用程序行为的“机制”,最接近的解决方案是Auto Stop Listener

    3. 见第 2 点

    【讨论】:

    • 感谢@Dmitri 提供的信息。关于#1,我尝试通过以下方式使用beanshell脚本:(1)__P函数读取#threads的“threadsNum”变量->该变量根据beanshell服务器的响应进行更新,但实际活动线程没有得到修改.是因为设置中使用的 CTT 还是为此所需的任何其他详细信息? (2) 使用 JMeterContext,但 ctx.getThreadGroup() 和 ctx.getEngine() 都返回 null。有什么见解或理由吗?
    • beanshell 脚本执行的输出(初始#threads 设置为 400) - 连接到 localhost:9000 上的 BSH 服务器 从服务器读取响应 ... BeanShell 2.0b6 - 由 Pat Niemeyer (pat@pat.net ) 将属性“req_per_min”设置为“6000”。将属性“线程”设置为“500”。 #Thread: 400 ctx.getThread(): null ctx.getThreadGroup(): null ctx.toString(): org.apache.jmeter.threads.JMeterContext@1a12992 ctx.getEngine() : null 活动线程: 400 启动线程: 400 ...与服务器断开连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多