ablog

不器用で落着きのない技術者のメモ

Windows で Java Mission Control(JMC) のヒープサイズを変更する

背景

  • WindowsWeblogicJava Flight Recorder(JFR) のダンプファイルを分析していたら、動作が重い(特にイベントタブのスレッドごとのグラフ)ので、ヒープサイズを大きくしてみた。

変更方法

JDKのインストールディレクトリ\bin\jmc.ini の -vmargs のセクションに -XX:InitialHeapSize(=-Xms)、-XX:MaxHeapSize(=-Xmx) を追記する。

-startup
../lib/missioncontrol/plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
../lib/missioncontrol/plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20141007-2033
--launcher.appendVmargs
-vm
../jre/bin/
-vmargs
-XX:+UseG1GC
-XX:+UnlockCommercialFeatures
-XX:+FlightRecorder
-XX:FlightRecorderOptions=defaultrecording=true
-XX:InitialHeapSize=1g # ★ココ
-XX:MaxHeapSize=6g # ★ココ
-Djava.net.preferIPv4Stack=true

確認

> cd C:\Program Files\Java\jdk1.8.0_92\bin
> jcmd -l
3732
7588 sun.tools.jcmd.JCmd -l

> jcmd 3732 VM.flags
3732:
-XX:CICompilerCount=3 -XX:ConcGCThreads=1 -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true -XX:G1HeapRegionSize=1048576 -XX:InitialHeapSize=1073741824★ -XX:MarkStackSize=4194304 -XX:MaxHeapSize=6442450944★ -XX:MaxNewSize=3865051136 -XX:MinHeapDeltaBytes=1048576 -XX:+UnlockCommercialFeatures -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC -XX:-UseLargePagesIndividualAllocation

InitialHeapSize=1073741824、MaxHeapSize=6442450944 と変更が反映されている。