JMeter消息吞吐量太低

时间:2017-01-11 11:07:06

标签: java testing jmeter

我正在尝试使用JMeter来测试ActiveMQ群集。根据要求,我需要每秒至少获得2k条消息作为测试。问题是我无法获得所需数量的消息。

我试图在进入群集之前针对本地队列测试它,结果并不好。在安装了Windows 10的PC(非常强大)中,我能做的最好的是每秒几百条消息。在使用OSX 10的Mac(Macbook Pro)中,我可以将其泵送到大约1.5k。

我在JMeter中尝试了不同的配置:改变线程数,消息大小,请求和响应模式与仅请求...但没有什么可以做的。

当我运行自定义代码时,我可以在一秒钟内将大约10k条消息推入队列。我可能会遗漏任何特定的配置吗?我已经在线阅读了这些教程,但是找不到任何解决问题的方法。

2 个答案:

答案 0 :(得分:0)

JMeter默认配置适用于测试开发和调试,但在进行高负载时,您需要记住以下几个要点:

  1. 不要使用GUI执行测试,您应该使用non-GUI mode运行测试
  2. 默认JVM堆分配仅为512 Mb,您肯定需要在JMeter启动脚本中提升此设置。同样适用于堆栈大小和垃圾收集器设置。有关JVM内部的更多信息,请参阅JVM Tuning: Heapsize, Stacksize and Garbage Collection Fundamental文章。
  3. 在负载测试期间不要使用Listeners,它们会在资源利用方面造成巨大的开销,并且不会添加任何值。
  4. Pre / Post ProcessorsAssertions的使用减少到绝对最小值。
  5. 请参阅9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure,了解上述要点以及更多提示。

    作为最后的手段,如果您达到单个负载生成器计算机的硬件限制,您可以始终考虑running JMeter in distributed mode并添加更多JMeter引擎。

答案 1 :(得分:0)

我在摆弄了几个小时之后找到了答案。事实证明,默认情况下有一个未选中的复选框,这使得所有邮件都是持久的。当我勾选它时,我得到了我正在寻找的吞吐量。