性能诊断工具

作者:Mike Rousos

本文列出了用于诊断 ASP.NET Core 中的性能问题的工具。

有关性能诊断工具和计数器的信息 Blazor WebAssembly ,请参阅 ASP.NET Core Blazor WebAssembly 浏览器开发人员工具诊断ASP.NET 核心 Blazor WebAssembly 事件管道诊断

Visual Studio 诊断工具

Visual Studio 中内置的 分析和诊断工具 是开始调查性能问题的好位置。 这些工具在 Visual Studio 开发环境中强大且方便使用。 该工具允许分析 ASP.NET Core 应用中的 CPU 使用率、内存使用情况和性能事件。 内置功能使得在开发时分析变得更加轻松。

Visual Studio 文档中提供了详细信息。

Application Insights

Application Insights 为应用提供深入的性能数据。 Application Insights 会自动收集有关响应速率、失败率、依赖项响应时间等的数据。 Application Insights 支持记录特定于应用的自定义事件和指标。

Azure Application Insights 提供了多种方式来提供有关受监视应用的见解:

  • 应用程序映射 – 有助于发现分布式应用的所有组件的性能瓶颈或故障热点。

  • Azure 指标资源管理器 是 Microsoft Azure 门户的一个组件,它允许绘制图表、直观地关联趋势,以及调查指标值的峰值和下降。

  • Application Insights 门户中的性能页面

    • 显示受监视应用中不同作的性能详细信息。
    • 允许深入到单个操作,以检查导致持续时间较长的所有部件/依赖项。
    • 可以从此处调用探查器来按需收集性能轨迹。
  • Azure Application Insights Profiler 允许定期和按需分析 .NET 应用。 Azure 门户显示使用调用堆栈和热路径捕获的性能跟踪。 还可以下载跟踪文件,以便使用 PerfView 进行更深入的分析。

Application Insights 可用于各种环境:

  • 优化以便在 Azure 上运行。
  • 在生产、开发和预生产环境中工作。
  • 可以在 Visual Studio 或其他托管环境中本地运行。

有关基于代码的监视的详细信息,请参阅 Application Insights for ASP.NET Core。 有关无代码监视的详细信息,请参阅 监视 Azure 应用服务性能

PerfView

PerfView 是由 .NET 团队创建的一种性能分析工具,专门用于诊断 .NET 性能问题。 PerfView 允许分析 CPU 使用率、内存和 GC 行为、性能事件和时钟时间。

有关 PerfView 的详细信息,请参阅工具或 GitHub 上提供的用户指南。

Windows 性能工具包

Windows 性能工具包 (WPT)由两个组件组成:Windows 性能记录器(WPR)和 Windows 性能分析器(WPA)。 这些工具生成 Windows 操作系统和应用程序的深入性能配置文件。 WPT 具有更丰富的可视化数据方式,但其数据收集功能不如 PerfView 的功能更强大。

PerfCollect

虽然 PerfView 是适用于 .NET 方案的有用性能分析工具,但它仅在 Windows 上运行,因此不能使用它从 Linux 环境中运行的 ASP.NET Core 应用收集跟踪。

PerfCollect 是一个 bash 脚本,它使用本机 Linux 分析工具(PerfLTTng)在 Linux 上收集可由 PerfView 分析的跟踪。 当性能问题显示在无法直接使用 PerfView 的 Linux 环境中时,PerfCollect 非常有用。 相反,PerfCollect 可以从 .NET Core 应用收集跟踪,然后使用 PerfView 在 Windows 计算机上进行分析。

GitHub 上提供了有关如何安装和开始使用 PerfCollect 的详细信息。

其他第三方性能工具

下面列出了一些可用于 .NET Core 应用程序性能调查的第三方性能工具。