2017-01-11 151 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引擎的硬件限制。