これらの手順を最適化するOutOfMemoryError
には、次の手順に従う必要があります。
JMeter は、JVMで実行される Java ツールです。最大の機能を得るには、実行中に JMeter に最大のリソースを提供する必要があります。まず、ヒープ サイズを増やす必要があります(JMeter の bin ディレクトリ内で を取得しますjmeter.bat/sh
)。
HEAP=-Xms512m –Xmx512m
これは、デフォルトで割り当てられたヒープ サイズが最小 512MB、最大 512MB であることを意味します。自分のマシン構成に従って構成します。また、OS もある程度のメモリを必要とするため、物理 RAM のすべてを割り当てる必要はありません。
JMeter は Java GUIアプリケーションです。また、非常にリソース (CPU/RAM) を消費する非 GUI 版もあります。非 GUI モードで Jmeter を実行すると、消費するリソースが少なくなり、より多くのスレッドを実行できます。
- テスト実行中はすべてのリスナーを無効にします。これらはデバッグ専用であり、目的のスクリプトを設計するために使用します。
負荷テスト中はリスナーを無効にする必要があります。それらを有効にすると、追加のオーバーヘッドが発生し、テストのより重要な要素に必要な貴重なリソースが消費されます。
Java と JMeter は最新の状態に保つ必要があります。
リクエストとレスポンス ヘッダーの保存に関しては、アサーションの結果とレスポンス データが大量のメモリを消費する可能性があります。したがって、どうしても必要な場合を除き、これらの値を JMeter に保存しないようにしてください。
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 つの簡単な解決策に関するこのブログが役立ちます。