ナビゲーションをスキップ

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 のチューニング」の「ヒープ サイズの設定」を参照してください。

 


JVM のチューニング

前述のように、可能な限り高い応答性と可能な限り高いパフォーマンスのどちらを求めて BEA JRockit を実行するのかを検討する必要があります。 この節では、いずれかのパフォーマンスを目的としたチューニング方法について説明します。

高い応答性を求めるチューニング

アプリケーションに最高の応答性を要求し、休止時間を最小限に抑えるには、以下を実行します。

高いパフォーマンスを求めるチューニング

BEA JRockit で実現できる最高のパフォーマンスを求めるには、メモリ スループットを最適化します。 起動時に以下のチューニング オプションを設定します。

 


その他のチューニングのヒント

この節では、BEA JRockit JVM のパフォーマンスを向上させるために使用できる他の手法について説明します。

JRA でパフォーマンスを分析する

JRockit Runtime Analyzer (JRA) は、JRockit のパフォーマンスを調べることのできる優れた手段です。 JRA は実行時にシステムで発生したことを記録し、その内容を別の JRA ツールで分析することができる形式でファイルに保存します。 その中には、メモリ使用率、Java ヒープの内容、よく使用されたメソッドなどに関する情報が含まれます。 JRA の使い方については、以下のドキュメントを参照してください。

JRockit Runtime Analyzer ユーザーズ ガイド

ガベージ コレクションと休止時間を分析する

ガベージ コレクションと休止回数を一緒に分析すると、BEA JRockit JVM で動作するときのアプリケーションの実行の様子について参考情報が得られます。

-Xgcreport を使用する

ガベージ コレクションの統計を示すレポートを生成するには、-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:memory オプションを使用します。 コンソールへの出力が多くなるため、このオプションは主にデバッグを目的として使用します。 -Xverboseの使い方については、「BEA JRockit JVM の起動とコンフィグレーション」の「ロギング情報の表示」を参照してください。

アプリケーションの速度が遅い場合はロックの最適化を無効にする

アプリケーションの中でアクティブな部分がかなり小さく (数百行以下のコードが 80% 以上の時間アクセスされている)、その部分にアクセスする複数のスレッドによってアプリケーションがマルチスレッド化されている場合、-XXdisablefatspin を指定してアプリケーションの速度を上げることができます。 このオプションは JRockit でのロックの最適化を無効にします。

 

ナビゲーション バーのスキップ  ページの先頭 前 次