web-dev-qa-db-ja.com

JMeter OutOfMemoryError

OutOfMemorエラーの下に直面していて、JMeterが動作を停止します...

Java.lang.OutOfMemoryError: Java heap space Dumping heap to
    Java_pid4412.hprof ... Heap dump file created [591747609 bytes in
    71.244 secs] Exception in thread "AWT-EventQueue-0" Java.lang.OutOfMemoryError: Java heap space Exception in thread
    "AWT-EventQueue-0" Java.lang.OutOfMemoryError: Java heap space
    Exception in thread "AWT-EventQueue-0" Java.lang.OutOfMemoryError:
    Java heap space Exception in thread "AWT-EventQueue-0"
    Java.lang.OutOfMemoryError: Java heap space

どうすれば解決できますか?
私のシステムは、16 GB RAM、2xクアッドコアプロセッサ、146 GB HDDなどの非常に優れた仕様になっています。

誰か助けてもらえますか?

18
james

ヒープダンプは、デフォルトのJMeter設定である512 Moを使用していることを示しています。したがって、16 GBがある場合でも、それらを使用していません。

Jmeter.batのオプションのデフォルトJVMを適切なサイズに置き換えます。

set HEAP=-server -Xms768m -Xmx768m -Xss128k 

set NEW=-XX:NewSize=1024m -XX:MaxNewSize=1024m

また見てください:

16
ChamaraS

JVMにどのくらいのメモリを割り当てましたか? 512 MBのどこか?

構成は

Java -Xms<initial heap size> -Xmx<maximum heap size>
16
Aleksi Yrttiaho

OutOfMemoryErrorを最適化するには、次の手順に従います。

  • Javaヒープサイズを増やす:

JMeterは、Javaで動作するツールです[〜#〜] jvm [〜#〜]。最大値を取得するには機能では、実行中にJMeterに最大のリソースを提供する必要があります。最初に、ヒープサイズを増やす必要があります(JMeter binディレクトリ内で、jmeter.bat/sh)。

HEAP=-Xms512m –Xmx512m

これは、デフォルトで割り当てられたヒープサイズが最小512MB、最大512MBであることを意味します。自分のマシン構成を自分のマシン構成として構成します。 OSもある程度のメモリを必要とするため、物理的なRAMはすべて割り当てないようにしてください。

  • 非GUIモードでテストを実行:

JMeterはJava[〜#〜] gui [〜#〜]アプリケーションです。非GUIもありますリソースを大量に消費するエディション(CPU/RAM)。Jmeterを非GUIモードで実行すると、消費するリソースが少なくなり、さらに多くのリソースを実行できます糸。

  • テスト実行中はすべてのリスナーを無効にします。これらはデバッグ専用であり、目的のスクリプトを設計するために使用します。

負荷テスト中はリスナーを無効にする必要があります。それらを有効にすると追加のオーバーヘッドが発生し、テストのより重要な要素が必要とする貴重なリソースが消費されます。

  • 最新のソフトウェアを使用:

JavaとJMeterは最新の状態に保つ必要があります。

  • 保存する必要があるメトリックを決定します:

リクエストとレスポンスヘッダーの保存に関しては、アサーション結果とレスポンスデータは大量のメモリを消費する可能性があります。したがって、絶対に必要でない限り、これらの値をJMeterに保存しないようにしてください。

  • JVMを微調整する:

JMeter起動スクリプトの次のJVM引数も追加または変更できます。

1。メモリ割り当て率を追加します:

NEW=-XX:NewSize=128m -XX:MaxNewSize=512m

つまり、メモリはこのレートで増加します。

2。-server-ランタイムパラメータの最適化により、JVMを「サーバー」モードに切り替えます。このモードでは、JMeterの起動が遅くなりますが、全体的なスループットは高くなります。

3。-d64-64ビットOSを使用しているときに、このパラメータを使用すると、JVMに64ビットモードで実行するよう明示的に指示できます。

4。-XX:+UseConcMarkSweepGC-CMSガベージコレクターを強制的に使用します。全体的なスループットは低下しますが、CPUを集中的に使用するガベージコレクションが大幅に短縮されます。

5。-XX:+DisableExplicitGC-これは、アプリケーションが高価なガベージコレクションを強制することを防ぎ、予期しない一時停止を回避するのに役立ちます。

よりよく、より詳細に理解するには、このブログ JMeter負荷テストの「メモリ不足」の失敗に対する9つの簡単なソリューション が役立ちます。

10
Adnan

私にもこの問題があり、設定をどれだけ調整したかは問題ではありませんでしたJava -Xms<initial heap size> -Xmx<maximum heap size>、いつもメモリが足りなくなったので。最終的に、JMeterをGUIモードで(特にリスナーを使用して)実行するとボトルネックが発生することがわかりました。 JMeterを使用する最良の方法は、特に拡張テストや複数のスレーブサーバーを実行する場合、非GUIモードで、次のようになります。

jmeter -n -t testplan.jmx -r

このリンクをチェックして、適切な方法でリモートテストを行う方法を読んでください: http://wiki.Apache.org/jmeter/JMeterFAQ#How_to_do_remote_testing_the_.27proper_way.27.3F 。 「適切な方法」のリモートテストに関するセクションをお読みください。

お役に立てれば。

5
user1714830

多くのユーザーによるテスト中に、ツリー結果リスナーを使用していないかどうかを確認する必要があります。

この種の問題を回避するには、jmeterのベストプラクティスを確認してください。

よろしく

4
user1565007

Jmeter.batファイルのHEAP SIZEを変更する必要があります。最初に、2GBまたは6GB(または設定したいサイズ)のサイズをmbに変換してから、保存して.batファイルを再起動する必要があります。

「set HEAP = -Xms512m -Xmx512m "の値を設定します

2
Sohil Shivani

Jmeterバージョン3.xでは、$ JMETER_HOME/bin/jemter.sh(jmeter.bat)に記載されています。

## 環境変数:
## JVM_ARGS-オプションJava引数、たとえば-Dprop = val
##例.
## JVM_ARGS = "-Xms512m -Xmx512m" jmeter.shなど.

したがって、あなたのケースでは、あなたのニーズに十分に応じてそれを設定することができます例えば:

JVM_ARGS="-Xms1024m -Xmx1024m"
2
Kayvan Tehrani

非GUIモードでJmeterを実行します。メモリのヒープサイズを増やします。リスナーを非常に少なく/追加しないでください。非GUIモードでJmeterを実行するには、binディレクトリに移動し、そのウィンドウでコマンドプロンプトを開きます。次のコマンドを使用します "jmeter.bat -n -t Test.jmx -l Test.csv"ここでTest.jmxは非GUIモードで開く必要があるテストファイルで、Test.csvは必要なファイルです保存された結果。メモリのサイズを増やすには、コマンドHEAP = "-Xms512m -Xmx2048m"を使用します。ここで512は既に割り当てられているメモリで、2048はJmeterに割り当てる必要があるメモリです。

お役に立てれば

2
Nauman Malik

サーバーには16 GBのRAM、JMeterのデフォルトのヒープサイズは512 MBですが、以下の手順に従ってヒープサイズを増やします。

1. Open jmeter file using vi editor /text editor
2. Search for "HEAP"
3. Change minimum (-Xms) and Maximum (-Xmx) heap values as you required
4. Save and quit (!wq enter)  
5. Start Jmeter by sh jmeter.sh or bash jmeter.bat or Java -jar ApacheJMeter.jar
2
Madhu Cheepati

他の回答で述べたようにヒープサイズを調整し、いくつかのベストプラクティスも考慮に入れます

  • テストの実行時(もちろん検証時ではありません)、非GUIモードを使用します
  • 結果ツリーの表示などの重いリスナーを無効にしますが、代わりにシンプルデータライターを使用して、後でデータを分析します。

これらの2つの項目により、パフォーマンスとヒープサイズの使用率が大幅に向上します

0
Dirk R.