你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:✔️ Linux VM ✔️ Windows VM
Performance Diagnostics 有助于识别和排查 Azure 虚拟机上的性能问题。 本文介绍如何在 Azure 虚拟机 (VM) 上安装 Performance Diagnostics 并运行按需报告。
先决条件
- 要在 Windows 上运行持续和按需诊断,需要安装 .NET SDK 4.5 或更高版本。
注释
要在经典 VM 上安装 Performance Diagnostics,请参阅 Azure Performance Diagnostics VM 扩展。
受支持的操作系统
目前支持以下操作系统进行按需诊断和持续诊断:
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2012
- Windows 11
- Windows 10操作系统
所需的权限
运行 Performance Diagnostics 和查看报告需要下表中的权限。
| 行动 | 身份验证类型 | 所需的权限 | 
|---|---|---|
| 运行 Performance Diagnostics | 存储帐户访问密钥 | VM 上的 所有者 角色和 Azure 角色,其中包括 对存储帐户的 Microsoft.Storage/storageAccounts/listkeys/action 权限。 | 
| 运行 Performance Diagnostics | 托管标识(系统分配和用户分配) | VM 上的“所有者”角色和包含存储帐户上的 Microsoft.Storage/storageAccounts/providers/roleAssignments/write 权限的 Azure 角色。 | 
| 查看 Performance Diagnostics | 存储帐户访问密钥 | 一个 Azure 角色,其中包含对存储帐户的 Microsoft.Storage/storageAccounts/listkeys/action 权限或存储帐户上的 存储表数据读取者 角色。 | 
| 查看 Performance Diagnostics | 托管标识(系统分配和用户分配) | 包含存储帐户上的“存储表数据读取者”角色的 Azure 角色。 | 
| 下载 Performance Diagnostics 报告 | All | 包含存储帐户上的“存储表数据读取者”角色和“存储 Blob 数据读取者”角色 Azure 角色。 | 
有关 Azure 存储的内置角色的详细信息,请参阅用于存储的 Azure 内置角色。 有关存储帐户设置的详细信息,请参阅 查看和管理存储帐户和存储的数据。
如果 VM 上安装了 SQL Server 实例,PerfInsights 将使用帐户 NT AUTHORITY\SYSTEM 访问 SQL Server 实例以收集配置信息和运行规则。 必须向帐户 NT AUTHORITY\SYSTEM 授予每个实例的“查看服务器状态”权限和“连接 SQL”权限,否则 PerfInsights 将无法连接到 SQL Server,并且 PerfInsights 报告将不会显示任何与 SQL Server 相关的信息。
在 VM 上安装 Performance Diagnostics
Performance Diagnostics 会安装一个 VM 扩展,该扩展可运行名为 PerfInsights 的诊断工具。 PerfInsights 可用于 Windows 和 Linux。
可以从 Azure 门户中的多个位置安装 Performance Diagnostics 工具:
- 从虚拟机的菜单中。 在菜单的“帮助”部分中,选择“Performance Diagnostics”。 选择“启用 Performance Diagnostics” 
- 从虚拟机的“概述”页。 选择“监视”选项卡,然后选择“安装 Performance Diagnostics”磁贴底部的“安装”。 
- 从 VM 见解。 从“监视”菜单的“见解”部分选择虚拟机,然后选择要在其中运行诊断的 VM。 选择“安装 Performance Diagnostics”磁贴底部的“安装”。 
每个选项显示在选择“应用”以安装该工具之前必须配置的相同选项集。 下表对这些选项进行了说明。
| 选项 | DESCRIPTION | 
|---|---|
| 启用连续诊断 | 通过每隔 5 秒收集数据并每隔 5 分钟上传一次更新,及时解决性能问题,从而获取对高资源使用率的持续可作见解。 将见解存储在首选存储帐户中。 存储帐户根据可以配置为有效管理数据生命周期的帐户保留策略保留见解。 可以随时禁用连续诊断。 | 
| 运行按需诊断 | 安装完成后,运行按需报告。 可以选择稍后运行这些报告中的任何一个。 请参阅按需诊断中的报告列表及其说明。 | 
| 存储帐户 | 如果要为多个 VM 使用单个帐户,请指定存储帐户。 否则,使用默认诊断存储帐户或创建新的存储帐户。 请参阅查看和管理存储帐户和存储的数据。 | 
| 身份验证方法 | 使用的身份验证方法,如身份验证方法中所述。 | 
Performance Diagnostics 开始安装时会显示一条通知,安装完成后会收到第二条通知。 这通常需要大约一分钟的时间。 如果选择了“运行按需诊断”选项,则所选的性能分析方案将在指定的持续时间内运行。
在独立模式下安装
使用独立模式,无需在 VM 上安装扩展即可运行 Performance Diagnostics。 此模式对于排查非 Azure VM 上的性能问题或想要在不修改 VM 配置的情况下运行诊断很有用。 必须以交互方式登录到 VM,才能在独立模式下运行 PerfInsights。
- 下载 PerfInsights.zip。 
- 取消阻止 PerfInsights.zip 文件。 为此,请右键单击 PerfInsights.zip 文件,并选择“属性”。 在“常规”选项卡上,选择“取消阻止”,然后选择“确定”。 此操作可确保该工具在没有任何其他安全提示的情况下运行。 
- 将压缩的 PerfInsights.zip 文件展开到临时驱动器。 
按需报告
以下部分介绍 Performance Diagnostics 中提供的按需报告。
可以从 Windows 计算机运行以下按需报告:
快速分析
此方案收集磁盘配置和其他重要信息,包括:
- 事件日志
- 所有传入和传出连接的网络状态
- 网络和防火墙配置设置
- 任务列表,用于当前在系统中运行的所有应用程序
- Microsoft SQL Server 数据库配置设置(如果 VM 正在运行 SQL Server)
- 存储可靠性计数器
- 重要的 Windows 修补程序
- 已安装的筛选器驱动程序
这属于被动收集信息,不会影响系统。
注释
此方案自动包括在下述每个方案中。
基准测试
此方案针对所有附加到 VM 的驱动器运行 Diskspd 基准测试(IOPS 和 MBPS)。
注释
此方案可能会影响系统,不应在实时生产系统上运行。 必要时可在专用维护时段运行此方案,以免出现问题。 因跟踪或基准测试而导致工作负荷增加时,可能会对 VM 性能造成负面影响。
性能分析
此方案使用  中指定的计数器运行RuleEngineConfig.json file跟踪。 如果 VM 确定为运行 SQL Server 的服务器,则会运行性能计数器跟踪。 它通过使用 RuleEngineConfig.json 文件中找到的计数器来实现。 此方案还包括性能诊断数据。
Azure 文件分析
此方案运行特殊的性能计数器捕获和网络跟踪。 捕获包括所有的“服务器消息块 (SMB) 客户端共享”计数器。 以下是一些关键的 SMB 客户端共享性能计数器,属于捕获的一部分:
| 类型 | SMB 客户端共享计数器 | 
|---|---|
| IOPS | 数据请求/秒 | 
| 读取请求/秒 | |
| 写入请求/秒 | |
| 延迟 | 平均秒数/数据请求 | 
| 平均秒数/读取操作 | |
| 平均秒数/写入操作 | |
| IO 大小 | 平均字节/数据请求 | 
| 每次读取的平均字节数 | |
| 平均字节数/写入 | |
| 吞吐量 | 数据字节/秒 | 
| 读取字节/秒 | |
| 写入字节/秒 | |
| 队列长度 | 平均读取队列长度 | 
| 平均写入队列长度 | |
| 平均数据队列长度 | 
高级性能分析
运行高级性能分析时,可选择要并行运行的跟踪。 如果需要,可以运行所有这些跟踪(性能计数器、Xperf、网络和 StorPort)。
注释
此方案可能会影响系统,不应在实时生产系统上运行。 必要时可在专用维护时段运行此方案,以免出现问题。 因跟踪或基准测试而导致工作负荷增加时,可能会对 VM 性能造成负面影响。
运行报告
运行连续诊断
无需手动运行连续诊断。 Performance Diagnostics 扩展在 VM 上持续运行并上传结果。 有关启用和禁用连续诊断的说明,请参阅在 Azure 虚拟机上安装 Performance Diagnostics。
运行按需诊断
有两种方法可以运行按需诊断。
如果在 VM 上安装了 Performance Diagnostics 扩展,可以从 Azure 门户运行诊断。 在 VM 菜单中的“Performance Diagnostics”选项中,选择“运行诊断”,然后选择要运行的报告及其持续时间。
警告
可能的性能影响
在运行 Performance Diagnostics 时,请注意以下对 VM 的潜在性能影响。
- 对于基准检验方案或配置为使用 Xperf 或 Diskspd 的“高级性能分析”方案,此工具可能会对 VM 性能造成不利影响。 不应在实时生产环境中运行这些方案。
- 对于基准检验方案或配置为使用 Diskspd 的“高级性能分析”方案,请确保没有其他任何后台活动干扰 I/O 工作负载。
- 默认情况下,此工具使用临时存储驱动器来收集数据。 如果跟踪保持启用状态较长的时间,则收集的数据量会与之相关。 这会降低临时磁盘上空间的可用性,因此可能影响任何依赖于该驱动器的应用程序。
如果安装了 PerfInsights 的独立版本,可以从命令行运行按需诊断。
以管理员身份打开 Windows 命令提示符,然后运行 PerfInsights.exe 以查看可用的命令行参数。
cd <the path of PerfInsights folder>
PerfInsights
运行 PerfInsights 方案的基本语法是:
PerfInsights /run <ScenarioName> [AdditionalOptions]
使用 /list 命令查看受支持的方案列表:
PerfInsights /list
下面是运行不同故障排除方案的示例:
- 运行性能分析方案 5 分钟:
PerfInsights /run vmslow /d 300 /AcceptDisclaimerAndShareDiagnostics
- 使用 Xperf 和性能计数器跟踪运行高级方案 5 分钟:
PerfInsights /run advanced xp /d 300 /AcceptDisclaimerAndShareDiagnostics
- 运行基准方案 5 分钟:
PerfInsights /run benchmark /d 300 /AcceptDisclaimerAndShareDiagnostics
- 运行性能分析方案 5 分钟,并将结果 zip 文件上传到存储帐户:
PerfInsights /run vmslow /d 300 /AcceptDisclaimerAndShareDiagnostics /sa <StorageAccountName> /sk <StorageAccountKey>
在运行方案之前,PerfInsights 会提示同意共享诊断信息并同意 EULA。 使用“/AcceptDisclaimerAndShareDiagnostics”选项跳过这些提示。
如果具有 Microsoft 的活跃支持票证,以及根据所合作的支持工程师的请求正在运行的 PerfInsights,请确保使用 /sr 选项提供支持票证编号。
默认情况下,PerfInsights 将尝试将其更新到最新版本(如果可用)。 使用 /SkipAutoUpdate 或 /sau 参数跳过自动更新。
如果未指定持续时间开关 /d,PerfInsights 会在你运行慢速 VM 分析、Azure 文件分析和高级方案时提示重现此问题。
完成跟踪或操作后,PerfInsights 所在的文件夹中会出现一个新文件。 文件的名称为 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip。可以将此文件发送给支持专员进行分析,或打开 zip 文件中的报告以查看结果和建议。
身份验证方法
性能诊断支持 托管标识 和 存储帐户访问密钥 作为身份验证方法,以将性能诊断数据写入存储帐户:
注释
为了获得最佳安全性,Microsoft 建议尽可能使用 Microsoft Entra ID 和托管标识来授权针对 blob、队列和表数据的请求。 与共享密钥授权相比,使用 Microsoft Entra ID 和托管标识进行授权提供了更高的安全性和易用性。
- 系统分配的托管标识 - 这是默认的身份验证方法。 如果选择系统分配的托管标识,但未为 VM 启用,则性能诊断会尝试启用它。 如果当前用户缺少必要的权限,此作可能会失败。 Performance Diagnostics 会将存储帐户的“存储表数据参与者”角色和“存储 Blob 数据参与者”角色添加到系统分配的托管标识。 有关详细信息,请参阅 如何在现有 VM 上启用系统分配的托管标识。 
- 用户分配的管理标识 - 用户可以从与 VM 关联的用户分配的托管标识列表中选择一个。 Performance Diagnostics 会将存储帐户的“存储表数据参与者”角色和“存储 Blob 数据参与者”角色添加到用户分配的托管标识。 有关详细信息,请参阅 如何将用户分配的托管标识分配给现有 VM。 
- 存储帐户访问密钥 - 用户可以选择存储帐户访问密钥。 如果存储帐户禁用 了“允许存储帐户密钥访问” ,则安装作将失败。 有关详细信息,请参阅 共享密钥授权。 
若要更改身份验证方法,请卸载性能诊断并重新安装。
注释
将托管标识链接到 VM 后,性能诊断可能需要几分钟时间才能传播和识别这些标识。 如果安装失败,请等待几分钟,然后重试。
查看和管理存储帐户
Performance Diagnostics 将所有见解和报告存储在存储帐户中的二进制大型对象 (BLOB) 容器中,可以进行配置以缩短数据保留时间,从而最大限度地降低成本。 对于使用 Performance Diagnostics 的多个 VM,可以使用同一存储帐户,或者为每个 VM 使用单独的帐户。
要确保 Performance Diagnostics 正常运行,必须启用存储帐户的“允许存储帐户密钥访问”设置。 要启用此设置,请在 Azure 门户中打开存储帐户,然后选择“配置”菜单项。
如果在安装后更改了存储帐户,则不会删除旧报告和见解,但它们不再显示在诊断报告列表中。
注释
如果存储帐户使用专用终结点,请确保将 DNS 配置添加到每个单独的专用终结点,以便 Performance Diagnostics 访问存储。
查看存储的数据
要查看诊断数据,请在 Azure 门户中导航到存储帐户,然后选择“存储浏览器”。
Performance Diagnostics 将报告存储在名为 azdiagextnresults 的二进制大型对象 (BLOB) 容器中,并在表中存储见解。 见解包括:
- 有关运行的所有见解和信息
- Windows 上名为 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip的输出压缩文件和 Linux 上名为PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz的 tar 文件,其中包含日志文件
- 一份 HTML 报告
要下载报告,请选择容器,然后单击“下载”。
更改存储帐户
要更改存储帐户,请从 Azure 门户打开 Performance Diagnostics,如在 VM 上安装 Performance Diagnostics 中所述。 选择“设置”以打开“性能诊断设置”屏幕。
选择“更改存储帐户”以选择其他存储帐户。
卸载 Performance Diagnostics
从 VM 卸载 Performance Diagnostics 会移除 VM 扩展,但不会影响存储帐户中的任何诊断数据。
要卸载 Performance Diagnostics,请选择工具栏上的“卸载”按钮。
 
              
               
              
               
              
               
              
               
              
               
              
               
              
               
              
               
              
               
              
              