使用性能诊断排查 Azure 虚拟机上的性能问题
适用于:✔️ Linux VM ✔️ Windows VM
可以使用性能诊断工具在以下两种模式之一中识别和排查 Azure 虚拟机(VM)上的性能问题:
- 连续诊断(预览版)每隔五秒钟收集一次数据,每隔五秒钟报告一次有关资源使用率较高的可操作见解。 目前仅在 Windows 上支持持续诊断(预览版)。
- 按需诊断 通过提供更深入的数据、见解和建议,帮助你排查正在进行的性能问题,这些见解和建议基于一刻收集的数据。 Windows 和 Linux 都支持按需诊断。
性能诊断将所有见解和报表存储在存储帐户中,可以配置短数据保留,以最大程度地降低成本。
直接从Azure 门户运行性能诊断,还可以查看有关各种日志、丰富配置和诊断数据的见解和报告。 我们建议在联系 Microsoft 支持部门之前,先运行 Performance Diagnostics 并查看见解和诊断数据。
本文介绍如何使用性能诊断以及持续和按需模式提供的内容。
备注
目前仅在 Windows 上支持持续诊断(预览版)。 在 Windows VM 上,你将看到启用按需诊断和持续诊断的选项。 在 Linux VM 上,你将看到启用按需诊断的选项。 有关详细信息,请参阅 在 VM 上安装并运行性能诊断。
先决条件
- 若要在 Windows 上运行持续和按需诊断,需要 安装 .NET SDK 4.5 或更高版本。
备注
若要在经典 VM 上运行性能诊断,请参阅 Azure 性能诊断 VM 扩展。
所需的权限
操作 | 所需的权限 |
---|---|
运行 Performance Diagnostics | VM 上的所有者角色和包含Microsoft.Storage/storageAccounts/listkeys/action 存储帐户权限的 Azure 角色。 |
查看性能诊断 | 一个 Azure 角色,其中包含 Microsoft.Storage/storageAccounts/listkeys/action 对存储帐户的权限或 存储帐户上的存储表数据读取者 角色。 |
下载性能诊断报告 | 包含存储帐户上的 Azure 角色 Microsoft.Storage/storageAccounts/listkeys/action 或 存储帐户上的存储 Blob 数据读取者 角色。 |
有关Azure 存储的内置角色的详细信息,请参阅用于存储的 Azure 内置角色。
支持的操作系统
Windows
目前支持以下操作系统进行按需诊断和持续诊断:
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2012
- Windows 11
- Windows 10
Linux
目前,按需诊断支持以下分发版。
备注
Microsoft仅测试了表中列出的版本。 如果表中未列出某个版本,则不会通过Microsoft显式测试版本,但仍可能有效。
分发 | 版本 |
---|---|
Oracle Linux Server | 6.10 [* ], 7.3, 7.5, 7.6, 7.7, 7.8, 7.9 |
RHEL | 7.4、7.5、7.6、7.7、7.8、7.9、8.0 [* ]、8.1、8.2、8.4、8.5、8.6、8.7、8.8、8.9 |
Ubuntu | 16.04, 18.04, 20.04, 22.04 |
Debian | 9, 10, 11 [* ] |
SLES | 12 SP5 [* ], 15 SP1 [* ], 15 SP2 [* ], 15 SP3 [], 15 SP4 [* * ], 15 SP5 [* ], 15 SP6 [* ] |
AlmaLinux | 8.4, 8.5 |
Azure Linux | 2.0 |
备注
[*
] 请参阅 已知问题
在 VM 上安装并运行 Performance Diagnostics
Performance Diagnostics 会安装一个 VM 扩展,该扩展可运行名为 PerfInsights 的诊断工具。 PerfInsights 适用于 Windows 和 Linux。
可以根据故障排除工作流,从Azure 门户中的三个不同的位置安装性能诊断工具。 从虚拟机转到:
- “监视”选项卡概述 →
- “ 见解→性能”选项卡
- 性能诊断
选择以下选项卡之一以获取详细说明。
备注
若要运行性能诊断,请确保拥有所有 必需的权限。
在Azure 门户中,打开虚拟机,然后选择要在其中运行诊断的 VM。
在左侧导航菜单中,展开 “帮助 ”部分,然后选择“ 性能诊断”。
选择“ 启用性能诊断”
选择要安装和运行该工具的选项。 该表描述了可用选项。
选项 说明 启用连续诊断 通过每隔 5 秒收集数据并每隔 5 分钟上传一次更新,及时解决性能问题,从而获取对高资源使用率的持续可操作见解。 将见解存储在首选存储帐户中。 存储帐户根据可以配置为 有效管理数据生命周期的帐户保留策略保留见解。 可以随时禁用连续诊断。 运行按需诊断 获取对高资源使用率和各种系统配置的按需、可行见解。 接收可下载的报表,该报告提供全面的诊断数据来解决性能问题。 将见解和报告存储在首选存储帐户中。 存储帐户保留基于可以配置为 有效管理数据生命周期的帐户保留策略的见解。 可以使用所需的特定分析类型随时启动按需诊断: - 性能分析
包括快速分析方案中的所有检查,并监视高资源消耗量。 使用此版本可以排查一般性的性能问题,例如 CPU、内存和磁盘使用率较高的情况。 运行此项分析将花费 30 秒到 15 分钟,具体取决于选择的持续时间。 了解更多 Windows 或 Linux - 快速分析
检查已知问题、分析最佳做法并收集诊断数据。 此分析需要几分钟的时间来运行。 了解有关 Windows 或 Linux 的详细信息 - 高级性能分析 [仅限 Windows]
包括性能分析方案中的所有检查,并收集一个或多个跟踪,如以下部分所列。 使用此方案可以排查需要更多跟踪的复杂问题。 长时间运行此方案会增加诊断输出的总体大小,具体取决于 VM 的大小和所选跟踪选项。 运行此项分析将花费 30 秒到 15 分钟,具体取决于选择的持续时间。 了解详细信息 - Azure 文件分析 [仅限 Windows]
包括性能分析方案中的所有检查,并捕获网络跟踪和服务器消息块(SMB)计数器。 使用此方案可以排查 Azure 文件的性能问题。 运行此项分析将花费 30 秒到 15 分钟,具体取决于选择的持续时间。 了解详细信息
存储帐户 (可选)如果要使用单个存储帐户来存储多个 VM 的性能诊断结果,可以从下拉菜单中选择存储帐户。 如果未指定存储帐户,Performance Diagnostics 将使用默认诊断存储帐户或创建新的存储帐户。 - 性能分析
查看法律条款和隐私策略,然后选择相应的复选框以确认接受(必需)。
备注
若要安装和运行 Performance Diagnostics,必须同意法律条款并接受隐私策略。
选择“应用”以应用所选选项并安装该工具。
开始安装 Performance Diagnostics 时,系统会显示一条通知。 安装完成后,第二条通知指示安装成功。 如果选择了“运行按需诊断”选项,则所选的性能分析方案将在指定的持续时间内运行。
查看见解和报告
此表比较连续和按需性能诊断提供的数据。 有关所有收集的诊断数据的完整列表,请参阅 Windows 或 Linux 上的 PerfInsights 收集的信息类型。
持续 Performance Diagnostics | 按需 Performance Diagnostics | |
---|---|---|
可用性 | 当前仅支持 Windows VM | 同时支持 Windows 和 Linux VM |
生成的见解 | 对高资源使用率(例如高 CPU 使用率、高内存使用率和高磁盘使用率)的持续、可行见解 | 对高资源使用率和各种系统配置的按需、可行见解 |
数据收集频率 | 每隔 5 秒收集数据一次,每 5 分钟上传一次更新 | 按需运行所选持续时间按需收集数据 |
生成的报告 | 不生成报告 | 生成具有全面诊断数据的报表 |
查看性能诊断见解
可以根据故障排除工作流查看Azure 门户中三个不同的位置的性能诊断见解。 从虚拟机转到:
- “监视”选项卡概述 →
- “ 见解→性能”选项卡
- 性能诊断
选择以下选项卡之一以获取详细说明。
备注
若要查看性能诊断,请确保拥有所有 必需的权限。
在Azure 门户中,打开虚拟机,然后选择要查看其诊断的 VM。
在左侧导航菜单中,展开 “帮助 ”部分,然后选择“ 性能诊断”。
默认情况下, “性能诊断见解 ”选项卡处于活动状态。
性能诊断见解下的每一行都会列出见解、其影响级别、类别和相关建议。 使用筛选器按时间戳、影响、类别或诊断类型检索见解。
选择一行以打开 性能诊断见解详细信息 上下文菜单。 有关详细信息,请参阅以下部分。
查看详细信息并下载报表
性能 诊断见解详细信息 上下文菜单显示其他信息,例如有关操作的建议以及指向相关文档的链接。 对于按需见解,还可以通过分别选择“查看所有见解”或“下载报表”来查看或下载列表中的性能诊断报告。 有关详细信息,请参阅 下载并查看完整的性能诊断报告。
查看性能诊断报告
备注
若要下载性能诊断报告,请确保拥有所有 必需的权限。
“性能诊断报告”选项卡仅在性能诊断体验中可用。 其中列出了运行的所有按需诊断报告。 该列表指示运行的分析类型、找到的见解及其影响级别。
选择一行可查看更多详细信息。
性能诊断报告可能包含多个见解。 每个见解都包含建议。
“ 影响 ”列指示“高”、“中”或“低”的影响级别,以根据其他用户报告的错误配置、已知问题或问题等因素来指示性能问题的可能性。 你可能尚未遇到所列出的一个或多个问题。 例如,你可能在同一数据磁盘上有 SQL 日志文件和数据库文件。 如果数据库使用率较高,则此条件具有很高的瓶颈和其他性能问题。 但是,如果使用量较低,则可能不会注意到问题。
选择“下载报表”按钮可下载包含更丰富的诊断信息的 HTML 报表,例如存储和网络配置、性能计数器、跟踪、进程列表和日志。 其内容取决于所选的分析。 为了进行高级故障排除,报告可能包含与 CPU 使用率高、磁盘使用率高以及占用过多内存的进程相关的其他信息和交互式图表。 有关性能诊断报告的详细信息,请参阅 Windows 或 Linux。
备注
可以在生成性能诊断后 30 天内从 性能诊断屏幕下载性能诊断 报告。 30 天后,从性能诊断屏幕下载报表时,可能会收到错误消息。 若要在 30 天后获取报表,请转到存储帐户,然后从名为 azdiagextnresults 的二进制大型对象 (BLOB) 容器下载报表。 可以使用工具栏上的“设置”按钮查看存储帐户信息。
查看和管理存储帐户和管理存储的数据
性能诊断将所有见解和报表存储在存储帐户中,可以 配置短数据保留 ,以最大程度地降低成本。
若要确保性能诊断功能正确,必须启用 存储帐户的“允许存储帐户密钥访问 ”设置。 若要启用此设置,请执行以下步骤:
- 导航到“存储帐户”。
- 在存储帐户设置中 ,找到“配置” 部分。
- 找到“允许存储帐户密钥访问”选项并将其设置为“已启用”。
- 保存所做更改。
对于使用性能诊断的多个 VM,可以使用同一存储帐户。 更改存储帐户时,不会删除旧的报表和见解。 但是,它们不再显示在诊断报告列表中。
备注
性能诊断将见解存储在 Azure 表中,并将报表存储在二进制大型对象 (BLOB) 容器中。
如果存储帐户使用 专用终结点,请确保性能诊断可以在存储帐户中存储见解和报表:
- 为表和 BLOB 创建单独的专用终结点。
- 将 DNS 配置添加到每个单独的专用终结点。
查看帐户中存储的诊断数据
备注
若要查看诊断数据,请确保你拥有所有 必需的权限。
查看诊断数据:
导航到 Azure 门户中的存储帐户。
在左侧导航菜单中,选择 存储浏览器。
性能诊断将报表存储在名为 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 报告
若要下载报表,请选择 Blob 容器>azdiagextnresults
<report name>
>>Download。
更改存储帐户
更改在其中存储诊断见解和输出的存储帐户:
卸载性能诊断
从 VM 卸载性能诊断会删除 VM 扩展,但不会影响存储帐户中的任何诊断数据。
若要卸载性能诊断,请选择工具栏上的“ 卸载 ”按钮。
常见问题解答
如何实现与Microsoft 支持部门共享此数据?
使用 Microsoft 打开支持票证时,请务必从按需性能诊断运行共享性能诊断报告。 Microsoft 支持部门联系人提供了将按需性能诊断报告上传到工作区的选项。 使用以下任一方法下载按需性能诊断报告:
选项 1:从“性能诊断”边栏选项卡下载报表,如查看性能诊断报告中所述。
选项 2:从存储帐户下载报表,如“查看和管理存储帐户”和“存储的数据”中所述。
如何实现正确的时间捕获诊断数据?
建议运行持续性能诊断,以持续捕获 VM 诊断数据。
按需性能诊断运行具有以下阶段:
- 安装或更新性能诊断 VM 扩展
- 运行指定持续时间的诊断
目前,无法确切地知道 VM 扩展安装何时完成。 安装 VM 扩展大约需要 45 秒到 1 分钟。 安装 VM 扩展后,可以运行重现步骤,让按需性能诊断捕获正确的数据集进行故障排除。
如果跨区域移动 Azure VM,性能诊断是否会继续工作?
可以使用 Azure 资源移动器跨区域移动 Azure VM 和相关网络和存储资源。 但是,不支持跨区域移动 VM 扩展(包括 Azure 性能诊断 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 反馈社区。