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