你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建客户端性能跟踪

出于很多原因,Azure 远程渲染的性能可能并不尽如人意。 除了在云服务器上的渲染性能之外,网络连接质量也对体验产生了尤其重大的影响。 若要分析服务器性能,请参阅服务器端性能查询一章。

本章重点介绍如何通过 performance traces. 识别潜在的客户端瓶颈

使用入门

如果你不熟悉 Windows performance tracing 功能,本部分会介绍最基本的术语和应用程序方便你开始使用它。

安装

使用 Azure 远程渲染 (ARR) 进行跟踪的应用程序是可用于所有 Windows 开发的通用工具。 它们通过 Windows 性能工具包提供。 若要获取此工具包,请下载 Windows 评估和部署工具包

术语

在谈到性能跟踪时,理解各种术语就非常有必要。 其中最重要的术语包括:

  • Windows 事件跟踪 (ETW)
    ETW 是 Windows 中内置的高效内核级跟踪工具的统一名称。 支持 ETW 的应用程序会发出事件来记录可能有助于跟踪性能问题的操作,“事件跟踪”一词也由此得来。 默认情况下,操作系统已发出诸如磁盘访问、任务切换等事件。 像 ARR 这样的应用程序还会发出自定义事件,例如删除的帧、网络延迟等。

  • 事件跟踪日志记录 (ETL)
    ETL 描述收集(记录)的跟踪,因此通常用作存储跟踪数据的文件的文件扩展名。 因此,当你执行跟踪时,事后通常会生成一个 *.etl 文件。

  • Window 性能记录器 (WPR)
    WPR 是启动和停止事件跟踪记录的应用程序的名称。 WPR 使用配置文件 (*.wprp) 来配置要记录的确切事件。 此类 wprp 文件随 ARR SDK 一起提供。 在台式电脑上执行跟踪时,可以直接启动 WPR。 在 HoloLens 上执行跟踪时,通常会改由 Web 界面来操作。

  • Windows 性能分析器 (WPA)
    WPA 是可用于打开 *.etl 文件,并筛选数据以识别性能问题的 GUI 应用程序的名称。 通过 WPA,你可以按不同条件对数据进行排序,以多种方式显示数据,深入了解详细信息并关联信息。

  • Perfetto
    Perfetto 是适用于 Android 和 Linux 的系统分析和应用程序跟踪工具,自 Android 9 Pie 开始问世。 自 v27 OS 以来,Meta Quest 和 Quest 2 设备上也启用了 Perfetto(启用开发人员模式时)。 Perfetto 跟踪查看器 UI 可用于打开和分析生成的 Perfetto 跟踪。

尽管可以在任何 Windows 设备(本地 PC、HoloLens、云服务器等)上创建 ETL 跟踪,但通常会将其保存到台式电脑磁盘,并使用 WPA 进行分析。 可以向其他开发人员发送 ETL 文件供其查看。 ETL 跟踪可能包含敏感信息,例如文件路径和 IP 地址。 可以通过两种方式使用 ETW:记录跟踪或分析跟踪。 记录跟踪简单直接,只需要很少的设置。 而分析跟踪则相反,它需要你透彻了解 WPA 工具和正在调查的问题。 稍后会提供 WPA 的一般学习资料,以及有关如何解释 ARR 特定跟踪的指导。

在本地 PC 上记录跟踪

可以在电脑上使用跟踪来熟悉这些工具,或者,如果你遇到 HoloLens 硬件限制不相关的问题,也可以使用跟踪。 否则,可以跳到在 HoloLens 上记录跟踪部分。 尤其是,ARR 性能问题只能直接在 HoloLens 上跟踪。

WPR 配置

  1. 从“开始”菜单启动 Windows Performance Recorder
  2. 展开“更多选项”
  3. 选择“添加配置文件...”
  4. 选择 AzureRemoteRenderingNetworkProfiling.wprp 文件。 可以在 ARR SDK 的 Tools/ETLProfiles 下找到此文件。 该配置文件在 WPR 中的“自定义度量”下列出。 请确保它是唯一启用的配置文件。
  5. 展开“第一级会审”
    • 如果只想捕获 ARR 网络事件的快速跟踪数据,请“禁用”此选项。
    • 如果需要将 ARR 网络事件与其他系统特征(如 CPU 或内存使用情况)相关联,请“启用”此选项。
    • 启用了此选项的跟踪大小很可能高达数 GB,因此可能需要很长时间才能在 WPA 中保存和打开。

之后,WPR 配置应如下所示:

Screenshot of the Windows Performance Recorder with a selected AzureRemoteRenderingNetworkProfiling profile.

录制

选择“开始”以开始记录跟踪。 可以随时启动和停止记录;在执行此操作之前,无需关闭应用程序。 可以发现,你无需指定要跟踪的应用程序,因为 ETW 将记录整个系统的跟踪。 wprp 文件指定要记录的事件类型。

选择“保存”停止记录,并指定 ETL 文件的存储位置。

现已创建一个可在 WPA 中打开的 ETL 文件。

在 HoloLens 上记录跟踪

若要在 HoloLens 上记录跟踪,请启动设备,并将其 IP 地址输入到浏览器中以打开“设备门户”

Screenshot of the Performance Tracing webpage in the HoloLens Device Portal.

  1. 在左侧,导航到“性能”>“性能跟踪”
  2. 选择“自定义配置文件”
  3. 选择 Browse...
  4. 选择 AzureRemoteRenderingNetworkProfiling.wprp 文件。 可以在 ARR SDK 的 Tools/ETLProfiles 下找到此文件。
  5. 选择“启动跟踪”
  6. HoloLens 现在正在记录跟踪。 请确保触发要调查的性能问题。 然后选择“停止跟踪”
  7. 然后,跟踪将列在网页底部。 若要下载 ETL 文件,请选择右侧的磁盘图标。

现已创建一个可在 WPA 中打开的 ETL 文件。

在 Meta Quest 设备上记录跟踪

若要在 Quest 上记录跟踪,需要安装 adb 命令行工具

  1. 请确保已在 Quest 上启用开发人员模式
  2. 确保 adb 有权访问你的设备,方法是运行 adb devices 并验证该设备是否已列出。
  3. 在 ARR SDK 中的 Tools/ETLProfiles 下找到跟踪配置文件 AzureRemoteRenderingPerfetto.txt
    • 默认情况下,跟踪配置设置为运行 30 秒。 可以通过编辑 AzureRemoteRenderingPerfetto.txt 文件中的 duration_ms: 30000 值来修改此配置。
  4. 在 PowerShell 中运行 $config = cat "AzureRemoteRenderingPerfetto.txt" | adb shell perfetto -c - $config --txt --o "/data/misc/perfetto-traces/trace"
  5. 应会看到类似于以下行的输出。
    [522.149] perfetto_cmd.cc:825     Connected to the Perfetto traced service, TTL: 30s
    
  6. Quest 设备现在正在记录跟踪。 启动应用程序并触发你要调查的问题。
  7. 跟踪记录完成后,应会看到类似于以下行的输出。
    [552.637] perfetto_cmd.cc:946     Trace written into the output file
    
  8. 最后,可以通过在设备中运行 adb pull "/data/misc/perfetto-traces/trace" "outputTrace.pftrace" 来拉取文件。

现已创建一个可在 Perfetto 跟踪查看器 UI 中打开的 Perfetto 跟踪文件。

使用 WPA 分析跟踪

WPA 基础知识

Windows 性能分析器是用于打开 ETL 文件和检查跟踪的标准工具。 本文将不介绍 WPA 的工作原理。 若要开始使用,请查看以下资源:

  • 观看介绍性视频初步了解 WPA。
  • 查看 WPA 本身中的“开始”选项卡,其中解释了常见步骤。 浏览可用文章。 尤其是在“查看数据”下,你可以快速了解如何为特定数据创建图形。
  • 查看此网站上的有用信息,但并非所有内容都适合初学者。

图形数据

若要开始使用 ARR 跟踪,请注意以下几个方面。

Screenshot of an example graph in the Windows Performance Analyzer tool.

该图显示了跟踪数据表和相同数据的图形表示形式。

在底部的表格中,注意黄色(金黄)条和蓝色条。 你可以拖动它们并将其放置在任何位置。

黄色条左侧的所有列都解释为键。 键用于构建左上方窗口中的树。 此处包含两个键列:“提供程序名称”和“任务名称”。因此,左上方窗口显示了两级树结构。 如果对列进行重新排序,或在键区域中添加或删除列,树视图中的结构将随之更改。

蓝条右侧的列用于右上方窗口中的图形显示。 大多数情况下,只使用第一列,但某些图形模式需要使用多列数据。 要显示线条图,必须为该列设置“聚合模式”。 使用“平均值”或“最大值”。 当某个像素范围涵盖多个事件时,使用聚合模式来确定图形在给定像素的值。 可以通过将聚合设置为“总和”并缩放来观察此属性。

中间的列没有任何特殊含义。

Screenshot of the Generic Events View Editor in the Windows Performance Analyzer tool.

在“通用事件视图编辑器”中,你可以配置要显示的所有列、聚合模式、排序方式以及用作键或用于图形的列。 在示例插图中,字段 2 处于启用状态,字段 3 至 6 处于禁用状态。 字段 2 通常是 ETW 事件的第一个自定义数据字段,因而对于 ARR “FrameStatistics” 事件而言,该字段表示网络延迟值。 启用其他“字段”列以查看此事件的更多值。

预设

若要正确分析跟踪,需要确定自己的工作流和首选的数据显示。 但是,若要快速了解 ARR 特定的事件,需要将 Windows 软件保护平台配置文件和预设文件置于 Tools/ETLProfiles 文件夹中。 若要加载完整的配置文件,请从 WPA 菜单栏中选择“配置文件 > 应用...”,或打开“我的预设”面板(“窗口 > 我的预设”)并选择“导入”。 前者将设置完整的 WPA 配置,如此段落下方的插图中所示。 后者只为可用的各种视图配置设置预设,并支持快速打开视图来查看特定的 ARR 事件数据。

Screenshot of the Windows Performance Analyzer tool with the ARR presets applied.

该图显示了各种 ARR 特定事件的视图以及总体 CPU 利用率的视图。

后续步骤