このページでは、Node.js のオブジェクトインスタンス追跡を有効にする方法について説明します。Node.jsエージェントは、メモリ使用量をモニタリングするためのオブジェクトインスタンス追跡(OIT)を提供します。ノードのオブジェクトインスタンス追跡を有効にすると、Node.jsエージェントによりヒープ上のほとんどのインスタンスを持つオブジェクトタイプが特定されます。エージェントは、インスタンス数に基づいてオブジェクトを上位20種類まで追跡します。オブジェクトインスタンス追跡を使用すると、多数のインスタンスを持つオブジェクトのメモリ使用傾向を特定できます。

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

  1. 左側のナビゲーションウィンドウで、Tiers & Nodes をクリックします。
  2. [Tiers & Nodes] パネルで、追跡するノードに移動して選択。
  3. [View Dashboard] をダブルクリックまたはクリック。
  4. ノードダッシュボードで [Memory] タブをクリック。
  5. [ Object Instance Tracking] サブタブをクリック。
  6. [On] をクリックして追跡を開始。ヒープ分析が完了すると、エージェントがヒープ内にある上位20のオブジェクトタイプの追跡を開始。

  7. 長く追跡を続けると Node.js プロセスが遅くなるため、追跡が完了したら [Off] をクリック。OIT は短時間だけ使用してください。

Node.js OIT UI には「クラス」と表示されますが、Node.js エージェントが追跡するのはクラスではなくオブジェクトタイプです。この機能で「クラス」と表記されるものは「オブジェクト」に置換してお考えください。

メモリ使用量の問題特定

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

  • Node.js エージェントは通常 1 分間に 1 度のレポートを試行するが、メモリが飽和し、負荷の大きいアプリケーションでは頻度が少なくなる場合がある
  • インスタンス数収集時間の合間は、コントローラに表示される現在のインスタンス数およびシャローサイズが0であることは正常。
  • インスタンス数に関する情報を表示するには、グラフのピークにカーソルを合わせる。
  • 左から右へ向かってピークのサイズが増加している傾向を探す。これらはメモリリークを示している可能性がある。

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

[Object Instance Tracking] タブの上位 20 に表示されないオブジェクトを追跡する場合は、追跡する特定のオブジェクトを構成できます。

  1. [Object Instance Tracking] タブで、次をクリック。Configure Custom Classes to Track.
  2. [Define Custom Classes to Track] パネルで [Add] をクリック。[Create New Instance Tracker] パネルが開く。
  3. [Enabled] のチェックを確認。
  4. 追跡するインスタンスのオブジェクトを入力。
  5. [Save] をクリックします。OITがONの場合に追跡するオブジェクトに構成したオブジェクトが追加される。

メトリックブラウザでOITメトリックを検証

OIT が有効の場合、OIT メトリックはメトリックブラウザの [Application Infrastructure Performance ] > [ <tier> ] > [ Individual Nodes ] > [ <node> ] > [ Object Instance Tracking] にも報告されます。