2017-01-11 106 views
1

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

我试图再进集群,以测试其对本地队列,效果也不好。在装有Windows 10的电脑(相当强大)中,我能做的最好的是每秒几百条消息。在OSX 10的Mac(Macbook Pro)中,我可以将它泵到1.5k左右。

我已经尝试JMeter中的不同配置:改变线程数量,消息大小,请求&响应模式vs请求只...但没有什么诀窍。

当运行自定义代码,我可以推10k左右消息转换成在第二队列中。有没有可能丢失的特定配置?我已经通过网上的教程,但我找不到解决问题的任何东西。

+0

你是否得到任何JMeter异常(例如内存不足)?如果没有,你是否遇到任何操作系统限制?我会从端口使用开始,这可能是一个简单的瓶颈。或者它比预期的要慢? –

回答

0

我找到答案后摆弄了几个小时。结果发现有一个默认情况下未勾选的复选框,它使所有消息保持不变。当我勾选它时,我得到了我正在寻找的吞吐量。

0

JMeter的默认配置是良好的测试开发和调试,但是当涉及到进行高负荷你需要记住几个要点:

  1. 不要使用GUI来执行测试,你应该使用non-GUI mode
  2. 默认JVM堆分配运行测试是512 MB而已,你一定会需要提高在JMeter的启动脚本此设置。这同样适用于堆栈大小和垃圾收集器设置。请参阅JVM Tuning: Heapsize, Stacksize and Garbage Collection Fundamental文章以了解有关JVM内部的更多信息。
  3. 负载测试期间不要使用Listeners,他们造成巨大的开销,在资源利用方面,不增加任何价值。
  4. 减少Pre/Post ProcessorsAssertions使用到最低限度。

请参阅9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure以上几点解释和更少的提示。

如情况下的最后手段,你打一个负载生成器计算机可以随时考虑running JMeter in distributed mode并添加更多的JMeter引擎的硬件限制。