JMeter チューニングについて

JMeter で大量のリクエストを投げたり、メモリ消費量が大きくなると以下のようなエラーが出力されることがあります。

  • ERROR – jmeter.threads.JMeterThread: Test failed!
  • java.lang.OutOfMemoryError: Java heap space

この問題を防ぐためには、JMeter にどれくらいのメモリを使わせるかを事前に設定する必要があります。

Step 1. 現在のメモリ消費量確認

JMeter に割り当てるメモリを見積もるために、まずは、現在の OS が平常時にどれくらいメモリを消費しているか確認します。

ウィンドウズのツールバー (右クリック) > タスク マネージャをクリックします。

タスク マネージャ実行

そうすると以下のように Windows タスク マネージャ が起動します。

Windows タスク マネージャ では、CPU・メモリ・ネットワーク使用率、プロセス状態など。 様々な情報が確認できます。

必要な情報は、空きメモリ なので、JMeter にどれくらいのメモリを割り当てるか考えてください。

この例では、空きメモリが 6738MB (6.6GB) になっているのと、JMeter を実行するための専用マシーンなので、JMeter 以外に実行するアプリケーション・ソフトウェアはないと思っているため、この後、JMeter に 6GB を割り当てることにしています。

タスク マネージャ起動

Step 2. JMeter メモリチューニング

JMeter が消費するメモリを増やすためには、実行バッチファイルである jmeter.bat を直接編集する必要があります。

JMeter 展開先\binへ移動し、jmeter.bat (右クリック) > 編集をクリックします。

jmeter.bat編集

後は、以下のオプションを参考にし、メガバイト (MB) 単位でメモリを設定するだけですね。

  • -Xms : 初期値
  • -Xmx : 最大値

Windows のバッチファイルにおいて、rem はコメントアウトを意味します。

デフィルと状態だと以下のように JMeter が使える最大メモリが 512MB で小さい値になっているので、既存の設定は rem でコメントアウトし、新しい設定を追加します。

以下の例では、初期値 : 1GB最大値 : 6GB を設定します。 (1GB = 1024MB で計算)

  • -Xms : 1024 * 1 = 1024m
  • -Xmx : 1024 * 6 = 6144m
jmeter メモリ設定
・・・
rem set HEAP=-Xms512m -Xmx512m
set HEAP=-Xms1024m -Xmx6144m
・・・

設定が終わった後は、設定を保存してエディタを終了してください。

以上、JMeter メモリチューニング でした。