使用性能诊断排查 Azure 虚拟机的性能问题

使用性能诊断工具识别 Azure 虚拟机 (VM) 的性能问题并对其进行故障排除,这两种模式之一:

  • 持续诊断 (预览版) 每隔 5 秒收集数据,并每五分钟报告一次有关资源使用率过高的可操作见解。
  • 按需诊断 可帮助你根据在单个时间点收集的数据,通过更深入的数据、见解和建议来排查持续的性能问题。

性能诊断将所有见解和报表存储在存储帐户中,可以针对短期数据保留进行配置,以最大程度地降低成本。

直接从 Azure 门户运行性能诊断,还可以在其中查看有关各种日志、丰富配置和诊断数据的见解和报告。 建议先运行性能诊断并查看见解和诊断数据,然后再联系Microsoft支持人员。

本文介绍如何使用性能诊断,以及连续和按需模式提供的功能。

注意

持续诊断 (预览版) 将逐步推出,目前仅在 Windows 上受支持。 如果预览功能可用于计算机,你将看到启用按需诊断和连续诊断的选项,如 在 VM 上安装并运行性能诊断中所述。

先决条件

  • 若要在 Windows 上运行连续和按需诊断,需要 .NET SDK 4.5 或更高版本。

注意

若要在经典 VM 上运行性能诊断,请参阅 Azure 性能诊断 VM 扩展

所需的权限

操作 所需的权限
查看性能诊断见解和报告 Microsoft.Storage/storageAccounts/listKeys/action 存储帐户的权限,例如,由内置 存储帐户参与者 角色提供。

支持的操作系统

Windows

按需诊断和持续诊断目前支持以下操作系统:

  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows 11
  • Windows 10

Linux

注意

本文中引用的 CentOS 是 Linux 发行版, (EOL) 将达到生命周期结束。 相应地考虑使用和计划。 有关详细信息,请参阅 CentOS 生命周期终止指南

按需诊断当前支持以下分发版:

注意

Microsoft只测试了表中列出的版本。 如果某个版本未在表中列出,则Microsoft不会显式测试该版本,但版本可能仍有效。

分配 版本
Oracle Linux Server 6.10 [*]、7.3、7.5、7.6、7.7、7.8、7.9
CentOS 6.5 [*]、7.6、7.7、7.8、7.9
RHEL 7.2、7.5、8.0 [*]、8.1、8.2、8.6、8.8
Ubuntu 14.04, 16.04, 18.04, 20.04, 22.04
Debian 8、9、10、11 [*]
SLES 12 SP4 [*]、12 SP5 [*]、15 [*]、15 SP1 [*]、15 SP2 [*]、15 SP4 [*]
AlmaLinux 8.4, 8.5
Azure Linux 2.0

注意

[*] 请参阅 已知问题

在 VM 上安装并运行性能诊断

性能诊断安装一个 VM 扩展,用于运行名为 PerfInsights 的诊断工具。 PerfInsights 适用于 WindowsLinux

安装并运行性能诊断:

  1. Azure 门户中,选择“ 虚拟机”。

  2. 从 VM 名称列表中,选择要运行诊断的 VM。

  3. “帮助 ”部分中,选择“ 性能诊断”。

    Azure 门户的屏幕截图,其中突出显示了“安装性能诊断”按钮。

  4. 选择“启用性能诊断

  5. 选择安装并运行该工具的选项。

    “安装和运行性能诊断”上下文窗格的屏幕截图。选中“启用持续诊断”和“运行按需诊断”选项。

    下表介绍了可用的选项:

    选项 说明
    启用连续诊断 通过每 5 秒收集的数据以及每 5 分钟上传一次更新来及时解决性能问题,获取对资源使用率高的持续可操作见解。 将见解存储在首选存储帐户中。 存储帐户基于帐户保留策略保留见解,可以对其进行配置以 有效管理数据生命周期。 可以随时禁用连续诊断。
    运行按需诊断 获取有关高资源使用率和各种系统配置的按需可操作见解。 接收包含全面诊断数据的可下载报告,以解决性能问题。 将见解和报表存储在首选存储帐户中。 存储帐户基于帐户保留策略保留见解,可以对其进行配置以 有效管理数据生命周期。 可以随时使用所需的特定分析类型启动按需诊断:
    • 性能分析
      包括 快速分析 方案中的所有检查,并监视高资源消耗。 使用此版本排查一般性能问题,例如 CPU、内存和磁盘使用率过高。 此分析需要 30 秒到 15 分钟,具体取决于所选持续时间。 了解 WindowsLinux 的详细信息
    • 快速分析
      检查已知问题、分析最佳做法并收集诊断数据。 此分析需要几分钟时间才能运行。 了解 WindowsLinux 的详细信息
    • 高级性能分析 [*]
      包括 性能分析 方案中的所有检查,并收集一个或多个跟踪,如以下部分所述。 使用此方案排查需要更多跟踪的复杂问题。 长时间运行此方案会增加诊断输出的总体大小,具体取决于 VM 的大小和所选的跟踪选项。 此分析需要 30 秒到 15 分钟才能运行,具体取决于所选持续时间。 了解更多
    • Azure 文件分析 [*]
      包括 性能分析 方案中的所有检查,并捕获网络跟踪和 SMB 计数器。 使用此方案排查 Azure 文件的性能问题。 此分析需要 30 秒到 15 分钟才能运行,具体取决于所选持续时间。 了解更多
    存储帐户 (可选)如果要使用单个存储帐户来存储多个 VM 的性能诊断结果,可以从下拉列表中选择一个存储帐户。 如果未指定存储帐户,性能诊断将使用默认诊断存储帐户或创建新的存储帐户。

    注意

    [*] 这些分析方案仅在 Windows 上受支持。

  6. 查看法律条款和隐私策略,并选中相应的复选框以确认 (所需的) 。

    若要安装和运行性能诊断,必须同意法律条款并接受隐私策略。

  7. 选择“ 应用 ”以应用所选选项并安装该工具。

    性能诊断开始安装时会显示通知。 安装完成后,会看到一条通知,指示安装成功。 如果选择了 “运行按需诊断 ”选项,则会在指定的持续时间内运行所选的性能分析方案。

查看见解和报告

此表比较了连续和按需性能诊断提供的数据。 有关收集的所有诊断数据的完整列表,请参阅 WindowsLinux 上的 PerfInsights 收集了哪些类型的信息

持续性能诊断 按需性能诊断
可用性 目前仅支持 Windows VM 支持 Windows 和 Linux VM
生成的见解 对高资源使用率(例如 CPU、高内存和高磁盘使用率)的持续可操作见解 对资源使用率高和各种系统配置的按需可操作见解
数据收集频率 每 5 秒收集数据一次,每 5 分钟上传一次更新 按需收集按需运行所选持续时间的数据
生成的报表 不生成报表 生成包含全面诊断数据的报告

查看性能诊断见解

性能诊断见解 ”选项卡列出了所选时间段的见解。 每行都提供见解、影响级别、类别和相关建议。 选择“ 刷新 ”以查看新生成的连续诊断见解。

使用筛选器按时间戳、影响、类别或诊断类型检索见解。

“性能诊断”屏幕上“见解”选项卡的屏幕截图。

选择一行以查看更多详细信息。

性能诊断见解详细信息屏幕的屏幕截图。

通过分别选择“ 查看 ”或“ 下载”,查看或下载列表中的按需见解的性能诊断报告。 有关详细信息,请参阅 下载并查看完整的性能诊断报告

使用分组下拉列表对见解进行分组或取消分组。 可以按类别、见解或建议对按需见解和连续见解进行分组。

“性能诊断”屏幕上“见解”选项卡的屏幕截图,其中包含按见解分组的结果。

查看性能诊断报告

性能诊断报告 ”选项卡列出了运行的所有按需诊断报告。 该列表指示运行的分析类型、发现的见解及其影响级别。

从“性能诊断”屏幕中选择诊断报告的屏幕截图。

选择一行以查看更多详细信息。

性能诊断报告概述屏幕的屏幕截图。

每个性能诊断报告可能包含多个见解,每个见解都包含建议。

影响” 列指示影响级别为“高”、“中”或“低”,根据配置错误、已知问题或其他用户报告的问题等因素,显示性能问题的潜在可能性。 你可能尚未遇到一个或多个列出的问题。 例如,你可能在同一数据磁盘上具有 SQL 日志文件和数据库文件。 如果数据库使用率较高,则这种情况很可能出现瓶颈和其他性能问题,而如果使用率较低,则可能不会注意到问题。

选择“ 下载报告 ”按钮,下载包含更丰富的诊断信息(例如存储和网络配置、性能计数器、跟踪、进程列表和日志)的 HTML 报告。 内容取决于所选分析。 对于高级故障排除,报告可能包含与 CPU 使用率高、磁盘使用率高以及占用过多内存的进程相关的其他信息和交互式图表。 有关性能诊断报告的详细信息,请参阅 WindowsLinux

注意

可以在生成性能诊断报告后的 30 天内从 “性能诊断 ”屏幕下载它们。 30 天后,从 “性能诊断 ”屏幕下载报表时,可能会收到错误。 若要在 30 天后获取报表,请转到存储帐户,并从名为 azdiagextnresults 的二进制大型对象 (BLOB) 容器下载它。 可以使用工具栏上的 “设置” 按钮查看存储帐户信息。

查看和管理存储帐户和存储的数据

性能诊断将所有见解和报表存储在存储帐户中,可以 针对短期数据保留进行配置 ,以最大程度地降低成本。

可以将同一存储帐户用于使用性能诊断的多个 VM。 更改存储帐户时,不会删除旧的报表和见解。 但是,它们将不再显示在诊断报告列表中。

注意

性能诊断将见解存储在 Azure 表中,并将报表存储在二进制大型对象 (BLOB) 容器中。

如果存储帐户使用 专用终结点,请确保性能诊断可以在存储帐户中存储见解和报告:

  1. 为表和 BLOB 创建单独的专用终结点。
  2. 将 DNS 配置添加到每个单独的专用终结点。

查看存储在帐户中的诊断数据

若要查看这些文件,请执行以下操作:

  1. 导航到存储帐户。

  2. 选择 “存储浏览器”。

    存储帐户屏幕的屏幕截图,其中显示了性能诊断见解和报告文件。

    性能诊断将报表存储在二进制大型对象 (BLOB) 容器中,名为 azdiagextnresults,并在表中存储见解。

    见解包括:

    • 有关运行的所有见解和相关信息。
    • Windows 上名为 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip) 的输出压缩 (.zip) 文件 (linux 上名为 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz) 的 tar 文件 (包含日志文件。
    • HTML 报表。
  3. 若要下载报表,请选择“ Blob 容器>azdiagextnresults><report name>>下载”。

更改存储帐户

若要更改存储帐户,请:

  1. 选择 “设置” 工具栏按钮,更改存储诊断见解和输出的存储帐户。

    “性能诊断”屏幕工具栏的屏幕截图,其中突出显示了“设置”按钮。

    这会打开 “性能诊断设置” 屏幕。

    可以在其中更改存储帐户的“性能诊断设置”屏幕的屏幕截图。

  2. 选择“ 更改存储帐户 ”以选择其他存储帐户。

卸载性能诊断

从 VM 卸载性能诊断会删除 VM 扩展,但不会影响存储帐户中的任何诊断数据。

若要卸载性能诊断,请选择工具栏上的“ 卸载 ”按钮。

“性能诊断”屏幕工具栏的屏幕截图,其中突出显示了“卸载”按钮。

常见问题解答

如何与 Microsoft 客户支持共享此数据?

使用 Microsoft 打开支持票证时,请务必共享按需性能诊断运行中的性能诊断报告。 Microsoft CSS 联系人将提供将按需性能诊断报告上传到工作区的选项。 可通过两种方式下载按需性能诊断报告以与 Microsoft CSS 共享:

选项 1: 从“性能诊断”边栏选项卡下载报告,如 查看性能诊断报告中所述。

选项 2:查看和管理存储帐户和存储的数据中所述,从存储帐户下载报表。

如何在正确的时间捕获诊断数据?

建议运行持续性能诊断,以持续捕获 VM 诊断数据。

按需性能诊断运行有两个阶段:

  1. 安装或更新性能诊断 VM 扩展。
  2. 在指定的持续时间内运行诊断。

目前,没有简单的方法来准确知道 VM 扩展安装何时完成。 安装 VM 扩展大约需要 45 秒到 1 分钟。 安装 VM 扩展后,可以运行重现步骤,让 On-deman 性能诊断捕获正确的数据集进行故障排除。

跨区域移动 Azure VM 时,性能诊断是否会继续工作?

可以使用 Azure 资源转移器跨区域移动 Azure VM 以及相关的网络和存储资源。 但是,不支持跨区域移动 VM 扩展,包括 Azure 性能诊断 VM 扩展。 移动 VM 后,必须在目标区域中的 VM 上手动安装扩展。 有关详细信息,请参阅 在 Azure 区域之间移动 Azure VM 的支持矩阵

启用持续性能诊断对性能有何影响?

我们在一系列 Windows OS 版本、Azure VM 大小和 CPU 负载上运行了 12 小时持续性能诊断测试。

此表中显示的测试结果显示,持续性能诊断提供了有价值的见解,并且对系统资源的影响最小:

OS 版本 VM 大小 CPU 负载 Avgerage CPU 使用率 90 百分位 CPU 使用率 99 百分位 CPU 使用率 内存使用率
Windows Server 2019 B2s、A4V2、D5v2 20%, 50%, 80% <0.5% 2% 3% 42-43 MB
Windows Server 2016 SQL B2s、A4V2、D5v2 20%, 50%, 80% <0.5% 2% 3% 42-43 MB
Windows Server 2019 B2s、A4V2、D5v2 20%, 50%, 80% <0.5% 2% 3% 42-43 MB
Windows Server 2022 B2s、A4V2、D5v2 20%, 50%, 80% <0.5% <0.5% 3% 42-43 MB

存储成本的餐巾纸计算的背面

持续性能诊断将见解存储在表中,并将 JSON 文件存储在 Blob 容器中。 假设每行大约为 0.5 KB (kb) 且在压缩前报表大约为 9 KB,则每 5 分钟两行加上相应的报表上传结果为 10 KB,即 0.00001 GB。

现在,让我们计算存储成本:

  • 每月行数:17,280
  • 每行大小:0.00001 GB

总数据大小: 17,280 x 0.000001 = 0.1728 GB

数据存储成本: 0.1728 美元 x 0.045 美元 = 0.007776 美元

因此,假设 VM 承受稳定压力,假设使用本地冗余存储,则每月存储成本估计不到 1%。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。