この記事では、ASP.NET Core のパフォーマンスの問題を診断するためのツールの一覧を示します。
Blazor WebAssemblyパフォーマンス診断ツールとカウンターの詳細については、「ASP.NET Core Blazor WebAssembly ブラウザー開発者ツールの診断」および「コア Blazor WebAssembly イベント パイプ診断の ASP.NET」を参照してください。
Visual Studio 診断ツール
Visual Studio に組み込まれている プロファイリング ツールと診断ツール は、パフォーマンスの問題の調査を開始するのに適した場所です。 これらのツールは、Visual Studio 開発環境から使用するのに強力で便利です。 このツールを使用すると、ASP.NET Core アプリの CPU 使用率、メモリ使用量、パフォーマンス イベントを分析できます。 組み込みであるため、開発時にプロファイリングが簡単になります。
詳細については、 Visual Studio のドキュメントを参照してください。
アプリケーションインサイト
Application Insights は、 アプリの詳細なパフォーマンス データを提供します。 Application Insights では、応答率、障害率、依存関係の応答時間などのデータが自動的に収集されます。 Application Insights では、アプリに固有のカスタム イベントとメトリックのログ記録がサポートされています。
Azure Application Insights には、監視対象アプリに関する分析情報を提供する複数の方法が用意されています。
アプリケーション マップ – 分散アプリのすべてのコンポーネントでパフォーマンスのボトルネックや障害のホット スポットを特定するのに役立ちます。
Azure Metrics Explorer は Microsoft Azure portal のコンポーネントであり、グラフのプロット、傾向の視覚的な関連付け、メトリックの値の急増と急減の調査を可能にします。
Application Insights ポータルの [パフォーマンス] ブレード:
- 監視対象アプリのさまざまな操作のパフォーマンスの詳細を表示します。
- 特定の操作を詳細に調査し、長時間に影響を与えるすべてのパーツや依存関係を確認できます。
- ここからプロファイラーを呼び出して、パフォーマンス トレースをオンデマンドで収集できます。
Azure Application Insights Profiler を使用すると、.NET アプリを定期的かつオンデマンドでプロファイリングできます。 Azure portal には、呼び出し履歴とホット パスを使用してキャプチャされたパフォーマンス トレースが表示されます。 PerfView を使用して詳細な分析のためにトレース ファイルをダウンロードすることもできます。
Application Insights は、さまざまな環境で使用できます。
- Azure で動作するように最適化されています。
- 本番環境、開発環境、ステージング環境で動作します。
- Visual Studio またはその他のホスティング環境からローカルで動作します。
コードベースの監視の詳細については、「 Application Insights for ASP.NET Core」を参照してください。 コードレス監視の詳細については、「 Azure App Service のパフォーマンスを監視する」を参照してください。
PerfView
PerfView は、.NET のパフォーマンスの問題を診断するために.NET チームによって作成されたパフォーマンス分析ツールです。 PerfView を使用すると、CPU 使用率、メモリと GC の動作、パフォーマンス イベント、およびウォール クロック時間を分析できます。
PerfView の詳細については、ツールまたは GitHub で入手できるユーザーガイドを参照してください。
Windows Performance Toolkit
Windows Performance Toolkit (WPT) は、Windows Performance Recorder (WPR) と Windows Performance Analyzer (WPA) の 2 つのコンポーネントで構成されています。 このツールは、Windows オペレーティング システムとアプリの詳細なパフォーマンス プロファイルを生成します。 WPT にはデータを視覚化する方法が豊富ですが、そのデータ収集は PerfView よりも強力ではありません。
PerfCollect
PerfView は .NET シナリオに役立つパフォーマンス分析ツールですが、Windows でのみ実行されるため、Linux 環境で実行されている ASP.NET Core アプリからのトレースを収集することはできません。
PerfCollect は、ネイティブ Linux プロファイリング ツール (Perf および LTTng) を使用して、PerfView で分析できるトレースを Linux 上で収集する bash スクリプトです。 PerfCollect は、パフォーマンスの問題が、PerfView を直接使用できない Linux 環境に表示される場合に便利です。 代わりに、PerfCollect は、PerfView を使用して Windows コンピューターで分析される .NET Core アプリからトレースを収集できます。
PerfCollect のインストールと使用を開始する方法の詳細については、 GitHub を参照してください。
その他のサード パーティ製パフォーマンス ツール
次に、.NET Core アプリケーションのパフォーマンス調査に役立つサード パーティ製のパフォーマンス ツールをいくつか示します。
ASP.NET Core