JRockit JVM チューニング ガイド
![]() |
![]() |
![]() |
![]() |
BEA JRockit JVM をインストールすると、そのままですぐに使用できるデフォルトの起動オプションが多数用意されています。ただし、これらのオプションによって、BEA JRockit JVM で実現できる最適なパフォーマンスがアプリケーションに提供されない場合もあります。 そのため、BEA JRockit JVM には、多様なアプリケーションに適応するために、さまざまな代替オプションとアルゴリズムが用意されています。 この節では、これらのオプションと、起動時に使用できる基本的なチューニング方法について説明します。 内容は以下のとおりです。
注意 : この節で説明するチューニング設定では、標準および非標準のチューニング オプションに触れていますが、ここではオプションに関しては詳細に記述していません。 これらのオプションの詳細については、「BEA JRockit JVM のチューニング」を参照してください。
BEA JRockit JVM を起動する前に、以下の 2 つの点について検討する必要があります。
上記の質問に回答したら、その目標を達成するために、以降に説明する情報を利用して BEA JRockit JVM をチューニングしてください。
一般に、最大ヒープ サイズは、アプリケーションまたは同じコンピュータ上の他のアプリケーションでページ フォールトを引き起こさない程度に、できる限り大きい値に設定します。 ヒープ サイズを設定するには、-Xms
(最小ヒープ サイズ) および -Xmx
(最大ヒープ サイズ) オプションを使用します。 これらのオプションの詳細とヒープ サイズ設定のガイドラインについては、「BEA JRockit JVM のチューニング」の「ヒープ サイズの設定」を参照してください。
前述のように、可能な限り高い応答性と可能な限り高いパフォーマンスのどちらを求めて BEA JRockit を実行するのかを検討する必要があります。 この節では、いずれかのパフォーマンスを目的としたチューニング方法について説明します。
アプリケーションに最高の応答性を要求し、休止時間を最小限に抑えるには、以下を実行します。
-Xgc:gencon
) を選択する。 -Xms
) と最大ヒープ サイズ (-Xmx
) を設定します。 固定の世代別コンカレント ガベージ コレクタを使用している場合は、ヒープを大きくするとガベージ コレクションの頻度が軽減されるため、コレクションによる干渉が少なくなります。 したがって長い休止を抑えられます。-Xns
) を設定します。BEA JRockit で実現できる最高のパフォーマンスを求めるには、メモリ スループットを最適化します。 起動時に以下のチューニング オプションを設定します。
-Xns
を設定する必要はありません。-Xms
) と最大ヒープ サイズ (-Xmx
) を、マシンで許容される最大の値に設定します。
この節では、BEA JRockit JVM のパフォーマンスを向上させるために使用できる他の手法について説明します。
JRockit Runtime Analyzer (JRA) は、JRockit のパフォーマンスを調べることのできる優れた手段です。 JRA は実行時にシステムで発生したことを記録し、その内容を別の JRA ツールで分析することができる形式でファイルに保存します。 その中には、メモリ使用率、Java ヒープの内容、よく使用されたメソッドなどに関する情報が含まれます。 JRA の使い方については、以下のドキュメントを参照してください。
JRockit Runtime Analyzer ユーザーズ ガイド
ガベージ コレクションと休止回数を一緒に分析すると、BEA JRockit JVM で動作するときのアプリケーションの実行の様子について参考情報が得られます。
ガベージ コレクションの統計を示すレポートを生成するには、-Xgcreport
オプションを使用します。 このレポートを使用すると、アプリケーションにとって最も効率的なガベージ コレクタを使用しているかどうかを判断できます。 コード リスト 3-1 に示すように、-Xgcreport
では、ナーサリと古い世代の両方に関して、コレクションの詳細なプロファイルが表示されます (この場合は世代別ガベージ コレクタです)。
コード リスト 3-1 -Xgcreport の出力 : 世代別ガベージ コレクタ
[memory ]
[memory ] Memory usage report
[memory ]
[memory ] young collections
[memory ] number of collections = 201
[memory ] total promoted = 395672 (size 11807976)
[memory ] max promoted = 3797 (size 113720)
[memory ] total GC time = 5.994 s
[memory ] mean GC time = 29.819 ms
[memory ] maximum GC Pauses = 48.175 , 54.541, 81.423 ms
[memory ]
[memory ] old collections
[memory ] number of collections = 24
[memory ] total promoted = 0 (size 0)
[memory ] max promoted = 0 (size 0)
[memory ] total GC time = 4.083 s (pause 1.812 s)
[memory ] mean GC time = 170.125 ms (pause 75.498 ms)
[memory ] maximum GC Pauses = 0.489 , 2.213, 99.671 ms
[memory ]
[memory ] number of concurrent mark phases = 7
[memory ] number of parallel mark phases = 17
[memory ] number of concurrent sweep phases = 8
[memory ] number of parallel sweep phases = 16
このレポートを使用すると、ガベージ コレクション中にどのパフォーマンスが影響を受けているのかを判断できます。 たとえば、休止時間が長すぎると判断したら、静的なガベージ コレクタから動的なガベージ コレクタに変更し、-Xgcprio:pausetime
を設定して休止時間を最小限に抑えるようにします。
-Xgcreport
の使い方については、「BEA JRockit メモリ管理システムの使い方」の「ガベージ コレクションのアクティビティの表示」を参照してください。
実行中にガベージ コレクションごとの休止回数を表示するには、-Xverbose:memory
オプションを使用します。 コンソールへの出力が多くなるため、このオプションは主にデバッグを目的として使用します。 -Xverbose
の使い方については、「BEA JRockit JVM の起動とコンフィグレーション」の「ロギング情報の表示」を参照してください。
アプリケーションの中でアクティブな部分がかなり小さく (数百行以下のコードが 80% 以上の時間アクセスされている)、その部分にアクセスする複数のスレッドによってアプリケーションがマルチスレッド化されている場合、-XXdisablefatspin
を指定してアプリケーションの速度を上げることができます。 このオプションは JRockit でのロックの最適化を無効にします。
![]() ![]() |
![]() |
![]() |