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

适用于:✔️ Linux VM ✔️ Windows VM

使用 Performance Diagnostics 工具以以下两种模式中的一种识别 Azure 虚拟机 (VM) 上的性能问题并对其进行故障排除:

  • 连续诊断(预览版)每隔五秒钟收集一次数据,每隔五秒钟报告一次有关资源使用率较高的可操作见解。
  • 按需诊断有助于根据单个时间点收集的数据并使用更深入的数据、见解和建议对持续出现的性能问题进行故障排除。

Performance Diagnostics 将所有见解和报告存储在存储帐户中,可以配置该帐户以缩短数据保留期,从而最大程度地降低成本。

直接从 Azure 门户运行 Performance Diagnostics,还可以在其中查看有关各种日志、丰富配置和诊断数据的见解和报告。 我们建议在联系 Microsoft 支持部门之前,先运行 Performance Diagnostics 并查看见解和诊断数据。

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

注意

持续诊断(预览版)正在逐步推出,目前仅在 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 上安装并运行 Performance Diagnostics

Performance Diagnostics 会安装一个 VM 扩展,该扩展可运行名为 PerfInsights 的诊断工具。 PerfInsights 适用于 WindowsLinux

要安装并运行 Performance Diagnostics,请执行以下操作:

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

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

  3. 在“帮助”部分中,选择“Performance Diagnostics”

    Azure 门户的屏幕截图,其中突出显示了“安装 Performance Diagnostics”按钮。

  4. 选择“ 启用性能诊断”

  5. 选择要为该工具安装和运行的选项。

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

    下表描述了可用选项:

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

    注意

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

  6. 查看法律条款和隐私策略,然后选择相应的复选框进行确认(必需)。

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

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

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

查看见解和报告

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

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

查看性能诊断见解

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

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

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

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

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

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

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

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

查看性能诊断报告

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

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

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

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

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

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

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

注意

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

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

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

若要确保性能诊断功能正确,必须启用 存储帐户的“允许存储帐户密钥访问 ”设置。 若要启用此设置,请执行以下步骤:

  1. 导航到“存储帐户”。
  2. 在存储帐户设置中 ,找到“配置” 部分。
  3. 找到“允许存储帐户密钥访问”选项并将其设置为“已启用”。
  4. 保存所做更改。

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

注意

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

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

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

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

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

  1. 导航到“存储帐户”。

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

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

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

    见解包括:

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

更改存储帐户

若要更改存储帐户,请执行以下操作:

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

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

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

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

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

卸载性能诊断

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

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

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

常见问题解答

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

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

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

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

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

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

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

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

目前,无法确切地知道 VM 扩展安装何时完成。 安装 VM 扩展大约需要 45 秒到 1 分钟。 安装 VM 扩展后,可以运行重现步骤,让 On-deman Performance Diagnostics 捕获正确的数据集进行故障排除。

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

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

启用持续性能诊断的性能影响是什么?

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

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

OS 版本 VM 大小 CPU 负载 平均 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

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

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

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

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

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

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

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

联系我们寻求帮助

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