次の方法で共有


.NET 用の Application Insights Profiler を使用して Azure 内の運用アプリケーションをプロファイルする

アプリケーションのパフォーマンスに関する問題の診断は、特にダイナミック クラウド内の運用環境で実行されている場合には、困難になることがあります。 アプリケーションの応答が遅いのは、インフラストラクチャ、フレームワーク、またはパイプライン内の要求を処理するアプリケーション コードに原因があるかもしれません。

.NET 用の Application Insights Profiler を使用すると、シナリオに関係なく、Azure で実行されているアプリケーションのパフォーマンス トレースをキャプチャ、識別、および表示できます。 .NET Profiler トレース プロセスは自動的かつ大規模に行われ、ユーザーに悪影響を与えることはありません。 .NET Profiler は以下を特定します。

  • 顧客が行った各 Web 要求に対する応答時間の中央値、最速時間、最も遅かった時間。
  • "ホットな" コード パスは特定の Web 要求の処理に最も長い時間を費やしています。

すべての Azure アプリケーションで Profiler for .NET を有効にして、次のトリガーを使用してデータを収集します。

  • サンプリング トリガー: 1 時間に約 1 回、Profiler を 2 分間ランダムに起動します。
  • CPU トリガー: CPU 使用率が 80% を超えると Profiler を起動します。
  • メモリ トリガー: メモリ使用量が 80% を超えると Profiler を起動します。

これらの各トリガーは、構成、有効化、無効化することができます。

サンプリング レートとオーバーヘッド

既定では、Profiler は、1 時間ごとに 30 秒間、または CPU かメモリの使用率が高い時間中に 30 秒間という頻度でアクティブにトレースを収集します。 1 時間ごとのトレース (サンプリングと呼ばれます) はプロアクティブ チューニングに適していますが、高い使用率の CPU とメモリによるトレース (トリガーと呼ばれます) はリアクティブなトラブルシューティングに役立ちます。

Note

Profiler がアクティブに実行されてトレースを収集しているとき、通常 5% から 15% の間の CPU とメモリのオーバーヘッドがサーバーに付加されます。

Profiler によってキャプチャされたデータを保存するための追加コストはありません。 データは 15 日後に自動的に削除されます。

.NET Profiler でのサポート

Profiler は、以下の Azure サービスにデプロイされた .Net アプリケーションと連携します。 各種サービスに Profiler を有効にする具体的な手順については、以下のリンクを参照してください。

コンピューティング プラットフォーム .NET (>= 4.6) .NET Core
Azure App Service はい はい
Azure Virtual Machines と Virtual Machine Scale Sets (Windows) はい はい
Azure Virtual Machines と Virtual Machine Scale Sets (Linux) いいえ はい
Azure Cloud Services はい はい
Windows 用 Azure Container Instances いいえ はい
Linux 用 Azure Container Instances いいえ はい
Kubernetes いいえ はい
Azure Functions はい はい
Azure Service Fabric はい はい

Note

Java Profiler for Azure Monitor Application Insights (現在プレビュー段階) も使用できます。

Profiler for .NET を有効にしているが、トレースが表示されない場合は、トラブルシューティング ガイドを参照してください。

制限事項

  • データ保有: 既定のデータ保有期間は 5 日です。
  • Web アプリのプロファイル:
    • .NET Profiler は追加コストなしで使用できますが、Web アプリは少なくとも Azure App Service の Web Apps 機能の Basic レベルでホストされている必要があります。
    • 各 Web アプリにアタッチできるプロファイラーは 1 つだけです。
    • Linux 上の .NET Profiler は、Windows ベースの Web アプリでのみサポートされます。

次のステップ

お使いの次の Azure サービスで .NET Profiler を有効にする方法を確認します。