web-dev-qa-db-ja.com

jmeterテストがメモリ不足エラーで失敗しました

50人以上のユーザーでjMeterを実行しようとすると、OutOfMemoryErrorが発生します。

2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion  Java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion     Java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion  Java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion  Java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:16 ERROR - jmeter.threads.JMeterThread: Test failed! Java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:17 ERROR - jmeter.threads.JMeterThread: Test failed! 

ヒープサイズを大きくしようとしましたが、それでも同じエラーが発生しました。
すべてのリスナーを削除しようとしても、何も変わりませんでした。

15
shab

Javaヒープスペース。不足しているように見えます。デフォルトではJMeterはヒープ割り当てが非常に少ないため、これは正常です。-Xmxパラメータで制御可能です。

jmeter.batまたはjmeter.shスクリプトには、JMeterを次のように起動することを推奨する行があります。

JVM_ARGS="-Xms512m -Xmx512m" jmeter.sh

これらのエラーの受信を停止するまで、最大ヒープを増やしてみてください。ハードウェアRAMの80%などに設定することをお勧めします。

また、 JMeterパフォーマンスとチューニングのヒントの記事 を考慮して、メモリ消費リスナーを無効にし、オーバースクリプトしないで、ポストプロセッサを効率的に使用するなどしてください。

37
Dmitri T

jmeter 3.xで。この問題を解決するには2つのステップがあります。

ステップ1、JMeterバッチファイルのJVMメモリを変更する

##   ==============================================
##   Environment variables:
##   JVM_ARGS - optional Java args, e.g. -Dprop=val
##
##   e.g.
##   JVM_ARGS="-Xms512m -Xmx512m" jmeter etc.
##
##   ==============================================

これは、環境に応じたjmeter.shのデフォルト値です。

JVM_ARGS="-Xms512m -Xmx2048m"

jmeter.bat内:

set JVM_ARGS=-Xms512m -Xmx2048m

ステップ2、JMeterバッチファイルのHEAP = "-Xms512m -Xmx512m"を変更するには:

jmeter.shで

HEAP="-Xms512m -Xmx2048m"

jmeter.bat内:

set HEAP=-Xms512m -Xmx2048m
3
Dang

Windowsではbin/jmeter.batを、Linuxではbin/jmeter.shを開き、次の行を見つけます。

set HEAP=-Xms512m -Xmx512m

この変数は、起動時に引数としてjmeterに渡されます。次のようにデフォルトのヒープサイズを増やします。

set HEAP=-Xms1024m -Xmx1024m

使用可能なスペースがあり、jmeterがさらに必要な場合は、スペースを追加できます。お役に立てば幸いです。

1
user4212639

JMeterが大量のメモリを消費する理由は多くあります。

  • UIリスナーの使用と乱用
  • UIモードでのテストの実行:代わりにバッチモードでテストを実行します
  • JMeter SaveServiceの構成が不適切です:要求と応答をJTLに保存していますか?
  • JMeterロードジェネレーターごとにスレッドが多すぎます?通常、エンジンあたり1000未満であれば問題ありませんが、スクリプトの複雑さにも依存します。 JMeterをDistributed Modeで実行するには、 Remote Testing を参照してください。

ヒープの調整は、これらの問題を修正する1つの方法にすぎません。

JVM_ARGS="-Xms512m -Xmx512m" jmeter.sh

チェックアウト JMeter Out Of Memory:12 Ways to Fix Them to more morevaluable tips

0
Jerome L

Macでのこの1つのライナー(jmeterはこの場合はbashスクリプトです):

$ JVM_ARGS = "-Xms4g -Xmx4g -XX:NewSize = 4g -XX:MaxNewSize = 4g" && export JVM_ARGS && jmeter

0
Animesh

また、テスト非GUIモードの実行を常に検討する必要があります。

0
user6406388