Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

JMeterのメモリ使用量のリミットを変更する

f:id:overworker:20200406153810p:plain:h150


JMeterで大量のリクエストを発行する、以下のようなエラーが発生することがあります。

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

上記は、JMeterが使用しているメモリサイズを変更することで解消される可能性があります。
以下にJMeterのメモリサイズを変更する方法を記述します。

JMeter.batの内部を直接編集する

※ Ver5.2.1を使用して説明します

該当箇所

JMeter展開先\binへ移動し、jmeter.bat (右クリック) > 編集をクリックします。
以下のような記述を発見することができるはずです。

if not defined HEAP (
    rem See the unix startup file for the rationale of the following parameters,
    rem including some tuning recommendations
    set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
)

内容説明

項目 内容 単位 備考
-Xms 初期値 単位:g(=GigaByte)、m(=MegaByte)
-Xmx 最大値 単位:g(=GigaByte)、m(=MegaByte) PCのメモリサイズの影響を受けます
-XX:MaxMetaspaceSize 単位:g(=GigaByte)、m(=MegaByte) JavaProgramのMetaspace領域(※)

※ 非常に詳しく解説されているサイトを紹介します。(ほぼ理解できませんでしたが雰囲気はわかりました。) Java8のHotSpotVMからPermanent領域が消えた理由とその影響 | ギークを目指して

実作業

念のため、既存コードをremコメントアウトしたうえで、既存コード部分をベースに数値を変えてみましょう

if not defined HEAP (
    rem See the unix startup file for the rationale of the following parameters,
    rem including some tuning recommendations
    rem set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
    set HEAP=-Xms2g -Xmx6g -XX:MaxMetaspaceSize=256m
)

JMeterを起動している場合は、変更内容を保存したうえで再起動を実施してください。


その他JMeter関連の内容を次にまとめてみました。
overworker.hatenablog.jp