性能诊断工具

作者:Mike Rousos

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

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 本地或其他托管环境中工作。

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

PerfView

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

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

Windows 性能工具包

Windows Performance Toolkit (WPT) 由两个组件组成:Windows Performance Recorder (WPR) 和 Windows Performance Analyzer (WPA)。 这些工具可生成 Windows 操作系统和应用的深入性能配置文件。 WPT 提供更丰富的数据可视化方式,但其数据收集功能不如 PerfView 强大。

PerfCollect

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

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

有关如何安装和开始使用 PerfCollect 的详细信息,请参阅 GitHub

其他第三方性能工具

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