.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 を有効にする方法を確認します。