.NETのオブジェクトインスタンスの追跡

このページでは、ノードでオブジェクトインスタンス追跡を有効にする方法について説明します。Splunk AppDynamicsノードでオブジェクトインスタンス追跡を有効にすると、Splunk AppDynamics はヒープを分析し、ヒープ上のほとんどのインスタンスを持つクラスを特定します。 は、インスタンス数に基づいて上位 20 種類の .NET フレームワーククラスとアプリケーションクラスまで追跡します。オブジェクトインスタンス追跡を使用すると、多数のインスタンスを持つクラスのメモリ使用傾向を特定できます。

アクセス許可

オブジェクトインスタンスの追跡を有効化するには、次のいずれかの権限が必要です。

  • Configure Memory Monitoring
  • Configure Agent Properties

対象カスタムロールの管理Splunk AppDynamics」を参照してください。

制限事項

オブジェクトインスタンスの追跡は、Windows Nano ではサポートされていません。

前提条件

  • エージェントのインストールに MSI を使用していない場合は、次のファイルをコピーします。
    • Linux の場合:AppDynamics.HeapDump.Library.dll
    • Windows の場合:AppDynamics.HeapDump_x86.dll および AppDynamics.HeapDump_x64.dll
  • Linux の場合は、アプリケーションに ptrace コールを実行するために必要な権限があることを確認します。Docker Linux コンテナで、次のコマンド引数によって SYS_PTRACE 機能が有効になります。

    --cap-add SYS_PTRACE

ノードのオブジェクトインスタンス追跡の有効化

警告: オブジェクトインスタンス追跡が有効にされていると、ヒープ分析中に .NET アプリケーションは一時停止し、要求を処理できません。メモリ問題の診断時にオブジェクトインスタンス追跡を有効にし、トラブルシューティングが終了したら、追跡をオフにします。
ノードでオブジェクトインスタンス追跡を有効化するには
  1. ノードダッシュボードで、[Memory] タブをクリック。
  2. [オブジェクトインスタンスの追跡(Object Instance Tracking)] タブをクリック。
  3. をクリックします。
    エージェントがヒープ分析を終了すると、Splunk AppDynamics により、ヒープ内の上位 20 のアプリケーションクラスと上位 20 のシステム(Core .NET)クラスのトラックが始まります。

メモリ使用量の問題特定

次のガイドラインを使用して、メモリ使用量の問題を特定します。

  • オブジェクトインスタンスのコントローラ分析は 1 分で完了しますが、.NET エージェントがデータを送信するのは 10 分ごとのため、.NET メモリは時間経過に対して一連のピークとして表示されます。
  • インスタンス数収集時間の合間は、コントローラに表示される [Current Instance Count] と [Shallow Size] が 0 であることは正常です。
  • インスタンス数に関する情報を表示するには、グラフのピークにカーソルを合わせる。
  • 左から右へピークサイズが増加し、メモリリークを示している可能性がある傾向を探します。

カスタムクラスのオブジェクトインスタンスの追跡

[Object Instance Tracking] タブの上位 20 に表示されないクラスを追跡する場合は、追跡する特定のクラスを設定します。
  1. Object Instance Tracking > Configure Custom Classes to Track > Configure Instrumentation > Memory Monitoring にアクセスします。
  2. Add をクリックします。
    [Create New Instance Tracker] パネルが開く。
  3. [Enabled] はオンのままにしておきます。
  4. 追跡するインスタンスの完全修飾クラス名を入力する。
  5. Save をクリックします。