• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

.NETパフォーマンスメトリクス

New Relicの.NETAgentは、アプリケーションのパフォーマンスに関するメトリックを.NETランタイムから収集します。これらのメトリックは、アプリケーションが消費するCPUとメモリの量、およびガベージコレクションとスレッドプールリソースの競合によってアプリケーションのパフォーマンスがどのように影響を受けるかについての洞察を提供できます。

.NETパフォーマンスメトリクスの完全なスイートは、.NETAgentバージョン8.20以降で利用できます。

これらのメトリクスは、 one.newrelic.com > All capabilities > APM & servicesで確認できます。アプリケーションを選択し、 More views > Dotnet VMsに移動します。

これらのメトリクスは、次の方法でも表示できます。

  • カスタム ダッシュボードの作成。
  • one.newrelic.com で Metric Explorer を使用し [すべての機能] > [APM とサービス] > アプリケーションを選択し、 [その他のビュー]に移動します。

CPUメトリック

以下のCPU Metricsが収集されます。

  • CPU/User/Utilization
    このプロセスで消費されたCPUの割合。
  • CPU/User Time
    プロセスがアプリケーションコードを実行するのに費やした時間です。

メモリメトリック

以下のMemory Metricsが収集されます。

  • Memory/Physical
    プロセスに割り当てられているプライベート(物理)メモリの量(MB)。
  • Memory/WorkingSet
    プロセスに割り当てられた物理メモリの量。

ガベージコレクションのメトリック

.NETガベージコレクタはバックグラウンドで実行され、アプリケーションによって参照されなくなったオブジェクトに関連付けられたメモリを識別して再利用します。次のメトリックは、オブジェクト割り当てのパターンと潜在的な過剰割り当てシナリオを特定するのに役立つ場合があります。この記事では、.NETでのガベージコレクションの基本についてさらに説明します。

ヒント

ガベージコレクションの測定値は以下の通りです。

  • .NETFrameworkのすべてのバージョン
  • .NETCore3.0以降。

重要

.NET Frameworkアプリケーションの場合、アプリケーションを実行するWindowsユーザーは、Windowsパフォーマンスカウンターデータにアクセスできる必要があります。通常、これは、ユーザーを「パフォーマンスモニターユーザー」および「パフォーマンスログユーザー」グループに追加することによって実現されます。アクセス許可が不十分な場合、エージェントはガベージコレクションメトリックを収集しません。

全体的な指標

さらに、以下のガーベッジコレクションメトリクスが収集されます。

  • GC/Handles
    オブジェクトへの参照の数です。
  • GC/誘導
    通常、ランタイムはガベージコレクションを自動的に実行します。このメトリックは、アプリケーションコード内からGC.Collectへの明示的な呼び出しによってガベージコレクションが手動で呼び出された回数を識別します。
  • GC/PercentTimeInGC (.NET Frameworkのみ)
    最後のガベージコレクションサイクル以降、.NETランタイムがガベージコレクションの実行に費やした経過時間の割合。

世代-0ヒープ

以下のGC Gen0のメトリクスが収集されます。

  • GC/Gen0/Size
    第0世代で 利用可能な 割り当て可能なメモリの量(MB)。これは、第0世代で 利用されている メモリの量を示すものではなく、割り当て可能な最大値を示すものです。
  • GC/Gen0/Promoted
    ガベージコレクションに耐え、Gen0からGen1に昇格したメモリの量(MB)。メモリは、アクティブな参照がある場合、ガベージコレクションに耐えます。
  • GC/Gen0/Collections
    ガベージコレクタが実行したGeneration 0 Garbage Collectionの回数。

世代-1ヒープ

以下のGC Gen1メトリクスが収集されます。

  • GC/Gen1/Size
    第 1 世代のヒープで 使用されているメモリの量(MB) 。これは、第0世代のヒープで 利用可能な メモリの最大量を測定する「Gen0/Size」とは異なります。
  • GC/Gen1/Promoted
    ガベージコレクションに耐え、Gen1からGen2に昇格したメモリの量(MB)。メモリは、アクティブな参照がある場合、ガベージコレクションに耐えます。
  • GC/Gen1/Collections
    ガベージコレクタで実行されたGeneration 1 Garbage Collectionの回数です。

世代-2ヒープ

以下のGC Gen2メトリクスが収集されます。

  • GC/Gen2/Size
    Gen2 ヒープが 使用しているメモリの量(MB)
  • GC/Gen2/Survived (.NET Coreのみ)
    ガベージコレクションで存続したメモリの量(MB単位)。メモリへのアクティブな参照がある場合、メモリはガベージコレクションを存続します。 Gen0およびGen1とは異なり、ガベージコレクションを存続させるメモリはプロモートされません
  • GC/Gen2/Collections
    ガベージコレクタが実行したGeneration 2 Garbage Collectionの回数。

ラージオブジェクトヒープ(LOH)

以下のGC LOHメトリクスが収集されます。

  • GC /LOH/サイズ
    ラージオブジェクトヒープ(LOH)によって使用されているメモリの量(MB単位)。 .NET Coreでは、ラージオブジェクトヒープはGen3と呼ばれることもあります。
  • GC/LOH/Survived (.NET Coreのみ)ガベージコレクションを生き残ったメモリの量(MB単位)。メモリへのアクティブな参照がある場合、メモリはガベージコレクションを存続します。 Gen0およびGen1とは異なり、ガベージコレクションを存続させるメモリはプロモートされません

管理されたスレッドプールのメトリック

.NETランタイムは、スレッドのプールを管理します。次のメトリックは、スレッドプールの観点からアプリケーションのパフォーマンスを可視化し、スレッドプールが不足している領域を特定するのに役立つ場合があります。スレッドプールの枯渇/競合は、アプリケーションによって行われた要求を処理するために使用できる十分なスレッドがない場合に発生します。次の記事では、管理対象スレッドプールのさまざまな機能について説明します。これらのメトリックには、スレッドプールによって管理されていないスレッドに関する情報は含まれていないことに注意してください。

ワーカースレッド

ワーカースレッドは、プロセスに代わって作業を行うために採用される、CPUに拘束されたスレッドです。

  • Threadpool/Worker/Available
    プロセスで利用可能な管理対象スレッドの数を特定します。常に低い数値で推移している場合は、飢餓状態の可能性があります。
  • Threadpool/Worker/InUse
    プロセスが現在使用しているワーカースレッドの数を示します。

完了スレッド

I/Oスレッドとも呼ばれる完了スレッドは、I/Oオペレーションの完了を監視するために採用されます。

  • Threadpool/Completion/Available
    このメトリックは、プロセスで現在利用可能なスレッドの数を識別します。一貫して低い数値は、飢餓状態の可能性を示します。
  • Threadpool/Completion/InUse
    このメトリックは、プロセスが現在使用している完了スレッドの数を特定します。

スループット

スループットメトリクスは、別のスレッドで実行が要求された作業量、開始された作業量、スレッドプールのリソースが利用可能になるのを待っている作業量を測定します。

  • Threadpool/Throughput/Requested
    別のスレッドプールで管理されているスレッド上での作業の実行が要求された回数を識別します。
  • Threadpool/Throughput/Started
    別のスレッドで実行を要求されたワークアイテムのうち、実行を開始したものの数を示します。
  • Threadpool/Throughput/QueueLength
    要求されているが、開始を待っているワークアイテムの数を識別します。常に増加している数値は、スレッドプールが飢餓状態になっている可能性を示します。以下の記事 では、アプリケーションで利用可能なスレッド数を変更する方法を説明しています。
Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.