「ガーベッジ・コレクション」パースペクティブの使用

Health Center の「ガーベッジ・コレクション」パースペクティブには、ヒープの使用量、休止時間、要約表、オブジェクト割り振り、調整の推奨事項セクションなどのデータが表示されます。一部のデータは、非 Java™ アプリケーションでは使用できません。

Health Center の「ガーベッジ・コレクション」パースペクティブには、以下のビューがあります。

基本ガーベッジ・コレクション情報のビュー
次に示すビューは、すべてのアプリケーション・タイプで使用できます。
詳細ガーベッジ・コレクション情報のビュー
次に示すビューは、Java アプリケーションのみで、ガーベッジ・コレクション情報の収集の制御 (Java アプリケーションのみ)の説明のとおりに詳細ガーベッジ・コレクション情報を有効にした場合に限って使用可能です。
  • オブジェクト割り振り: 指定されたサイズ範囲内でのオブジェクト割り振りを示す表。
  • 要求サイト別のサンプル: サンプリングされたオブジェクト割り振りのプロファイル (割り振り要求の呼び出しサイト別にグループ化されている)。
  • オブジェクト別のサンプル: サンプリングされたオブジェクト割り振りのプロファイル (割り振られたオブジェクト別にグループ化されている)。
  • 呼び出し階層: このビューには、「オブジェクト割り振り」「要求サイト別のサンプル」、または「オブジェクト別のサンプル」のいずれかのビューにある行を選択したときにデータが表示されます。 例えば、「オブジェクト別のサンプル」ビューにある行を選択した場合、このビューには、そのオブジェクト割り振りに対する呼び出しの階層が表示されます。
  • 予定表: オブジェクト割り振りが要求された時期を視覚的に表したもの。「オブジェクト割り振り」または「要求サイト別のサンプル」のビューにある行を選択したときに、このビューにデータが表示されます。

ヒープ使用量

アプリケーションのメモリー使用量の傾向を知るには、ヒープ使用量のグラフを使用します。 メモリー・フットプリントが予想より大きい場合は、ヒープ分析ツールにより、メモリー使用量が多すぎる領域を特定できます。 使用済みのヒープが時間とともに増加している場合は、アプリケーションがメモリー・リークを起こしている可能性があります。メモリー・リークは、アプリケーションが不要なオブジェクトへの参照を保持している場合に発生します。これらのオブジェクトは引き続き参照されているため、ガーベッジ・コレクション処理ができず、メモリー所要量増加の原因となります。 メモリー使用量が増加すると、より多くのプロセッサー・リソースがガーベッジ・コレクション用に必要になり、アプリケーションでの作業用に残されたリソースは少なくなります。 最終的には、メモリー所要量でヒープが使い果され、OutOfMemoryError 例外が発生し、アプリケーションが失敗します。

WebSphere® Real Time for Linux JVM をモニターすると、一定間隔でのコレクションという標準的なパターンを示す使用済みヒープのグラフが表示されます。

休止時間

ガーベッジ・コレクションがパフォーマンスに与える影響を評価するには、休止時間のグラフを使用します。 ガーベッジ・コレクションを実行しているときは、すべてのアプリケーション・スレッドが休止します。 バッチ処理など、アプリケーションによっては、長期の一時停止が問題にならない場合があります。しかし、GUI アプリケーションや、その他のシステムと対話するアプリケーションなどでは、ガーベッジ・コレクションによる長期の一時停止が許容できない場合があります。

ガーベッジ・コレクションによる長期の一時停止は、アプリケーション・スループットの向上 に結びつくことが多く、 パフォーマンスの問題ではありません。 多くの場合、ガーベッジ・コレクションに費やす時間が長くなると、メモリー割り振りとメモリー・アクセス時間が改善されます。 応答時間の短縮が必要な場合のみ、一時停止時間の削減を目的にして、ガーベッジ・コレクションを調整する必要があります。

オブジェクト割り振り (Java アプリケーションのみ)

ラージ・オブジェクトを割り振っている コードを識別するには、オブジェクト割り振りビューを使用します。 下限しきい値および上限しきい値を使用して、呼び出しスタック情報のコレクションをトリガーする オブジェクト範囲を指定できます。詳しくは、ガーベッジ・コレクション情報の収集の制御 (Java アプリケーションのみ)を参照してください。

ビューには、 次の情報を示す表が表示されます。
表 1. オブジェクト割り振り
列見出し 説明
カウント この要求サイトでの割り振り要求の数
% この要求サイトにおいて記録された割り振りのパーセンテージ
割り振り 「%」列のグラフィカル表現
平均サイズ (KB) 記録された割り振りの平均オブジェクト・サイズ
要求サイト 割り振り要求のコードの場所
表の行を選択すると、割り振り要求サイトへの呼び出しパスが「呼び出し階層」ビューに表示されます。「予定表」ビューには、オブジェクト割り振りが要求された時期が視覚的に表示されます。

要求サイト別のサンプルまたはオブジェクト別のサンプル (Java アプリケーションのみ)

これらのビューを使用して、多数のオブジェクトを割り振っているコードを特定します。

JVM がスレッド・ローカル・ヒープ の外部で、指定された量のメモリーを割り振ると、割り振りサンプリング・イベントが発生します。このメモリー量は、-Xgc:allocationSamplingGranularity=bytes オプションによって定義されます。 デフォルト値は 16 MB です。サンプリング・イベントの数は、モニター対象アプリケーションが要求するメモリー量によって決まります。サンプリングの数を増やすには、-Xgc:allocationSamplingGranularity オプションの値を減らします。 サンプリングの数を最大にするには、-Xgc:allocationSamplingGranularity=1 に設定します。
注: -Xgc:allocationSamplingGranularity オプションの値をデフォルト値より小さく設定すると、モニター対象 JVM のパフォーマンスに影響が生じる可能性があります。
スレッド・ローカル・ヒープについて詳しくは、ご使用のバージョンの IBM SDK, Java Technology Edition の資料にある、『スレッド・ローカル・ヒープ』トピックを参照してください。例: スレッド・ローカル・ヒープ
「要求サイト別のサンプル」ビューを使用して、割り振り要求を最も頻繁に実行しているコードを検出します。サンプリングされたオブジェクト割り振りイベントの呼び出しスタックのコレクションを有効にしている場合にのみ、データが表示されます。詳しくは、ガーベッジ・コレクション情報の収集の制御 (Java アプリケーションのみ)を参照してください。 このビューには、以下の列を持つ表が表示されます。
表 2. 要求サイト別のサンプル
列見出し 説明
カウント このオブジェクト・タイプのサンプリングされた割り振り要求の数
% このオブジェクト・タイプのサンプリングされた割り振りのパーセンテージ
% 「%」列のグラフィカル表現
要求サイト 割り振り要求のコードの場所
割り振られたオブジェクト このサイトに割り振られるオブジェクトのクラス名
表の行を選択すると、割り振り要求サイトへの呼び出しパスが「呼び出し階層」ビューに表示され、割り振り要求が行われた時期が「予定表」ビューに視覚的に表示されます。
「オブジェクト別のサンプル」ビューを使用して、最も頻繁に割り振られるオブジェクトを検出します。このビューには、以下の列を持つ表が表示されます。
表 3. オブジェクト別のサンプル
列見出し 説明
カウント このオブジェクト・タイプのサンプリングされた割り振り要求の数
% このオブジェクト・タイプのサンプリングされた割り振りのパーセンテージ
% 「%」列のグラフィカル表現
合計サイズ (KB) サンプリングされた割り振りによって割り振られたメモリーの合計サイズ
割り振られたオブジェクト 割り振られるオブジェクトのクラス名
表の行を選択すると、割り振り要求サイトへの呼び出しパスが「呼び出し階層」ビューに表示されます。呼び出し階層情報は、サンプリングされたオブジェクト割り振りイベントの呼び出しスタックのコレクションを有効にしている場合にのみ使用可能です。詳しくは、ガーベッジ・コレクション情報の収集の制御 (Java アプリケーションのみ)を参照してください。

要約表

要約表には、ガーベッジ・コレクションのメトリック (平均休止時間、ガーベッジ・コレクション間の平均間隔、ガーベッジ・コレクションに要した時間など) が表示されます。 アプリケーションがガーベッジ・コレクションに費やす時間をパフォーマンス・メトリックそのものと見なしてはなりません。 IBM SDK, Java Technology Edition の世代並行 (gencon) ポリシーなど、ガーベッジ・コレクション・ポリシーの中には、ガーベッジ・コレクションに費やす時間はより多いが、アプリケーション・パフォーマンスはより高いものがあります。

調整の推奨事項 (Java アプリケーションのみ)

Health Center は、Java アプリケーションに関して一般的な調整の推奨事項とアドバイスを提供します。 例外的なケースでは、より細かな微調整が必要になる場合があります。Health Center は、ユーザーのサービス品質要件を把握していないため、その推奨事項が必ずしも役立つとは限りません。例えば、推奨される変更によってアプリケーションの効率が向上しても、休止時間が増える場合があります。これは、ユーザーのアプリケーションにとって最善ではない場合があります。調整の推奨事項では、アプリケーションがメモリー・リークを起こしている可能性があるかどうかも示されます。 ただし、Health Center では、自然に増加したメモリー所要量と、不要になったのに保持されているメモリーとを区別することはできません。

特定時間枠のデータの表示

切り取りを使用することにより、データ表示および推奨事項作成の対象となる時間間隔を選択できます。切り取りについて詳しくは、データの切り取りを参照してください。



© Copyright IBM Corporation 2007, 2015.
© Copyright 1997, 2015, Oracle and/or its affiliates.