使用 WPR 和 WPA 排查进程和线程问题

本文讨论 Windows 性能记录器(WPR)和 Windows 性能分析器(WPA)的功能,并提供在进行故障排除时如何应用这些功能的示例。

适用于: 所有受支持的 Windows Server 和 Windows 客户端版本

总结

WPR 和 WPA 是性能监视工具,用于生成 Windows 操作系统和应用程序的深入性能配置文件。 Windows 包含 WPR 的命令行版本。 若要获取 WPA 和 WPR 的 GUI 版本(本文中的示例所示),请下载并安装 Windows 评估和部署工具包(WADK)。

注意

上一个命令行工具 Xperf 仍支持收集数据,并且包含在 WADK 中。 但是,不再支持 Xperfview。 使用 WPA 查看 Xperf 录制。

有关如何使用 Xperf 的信息,请参阅 Xperf 命令行参考

先决条件

若要运行 WPT 工具,系统必须满足以下要求:

  • WPR:Windows 8 或更高版本。
  • WPA:具有 Microsoft .NET Framework 4.5 或更高版本的 Windows 8 或更高版本。

使用 WPR 记录数据

WPR 是一种功能强大的录制工具,用于创建系统与应用程序行为和资源使用情况的 Windows 事件跟踪(ETW)记录。 WPR 提供了内置配置文件,可以使用它们来选择要记录的事件。 另外,你还可以采用 XML 创作自定义配置文件。 有关详细信息,请参阅以下文档。

主题 链接
基本过程快速入门 WPR 操作说明主题
内置录制配置文件的说明 内置记录配置文件
WPR 用户界面的完整文档 WPR 功能
命令行选项参考 WPR 命令行选项
讨论关键方案 WPR 方案
性能方案
日志记录模式的说明(内存模式或文件模式) 日志记录模式
更改日志记录模式
完整的参考资料,包括录制配置文件 XML 引用和旧版 Xperf 引用 WPR 技术参考

可以从用户界面(WPRUI.exe)或命令行(WPR.exe)运行 WPR。 使用内置录制配置文件分析 CPU 使用率、电源问题、系统或应用程序性能不佳以及其他性能问题,WPR UI 可以轻松地生成记录。 WADK 中提供了WPRUI.exe。 WPR.exe随 Windows 操作系统(Windows 8.1 或更高版本)一起提供,并且不需要其他安装。

若要开始录制,请执行以下步骤:

  1. 选择“开始”,输入 Windows 性能记录器,然后在搜索结果中选择“Windows 性能记录器”。

  2. 执行下列操作之一:

    • 若要在使用默认(第一级会审)配置文件时记录,请选择“ 开始”。

      显示 W.P.R 的精简视图的屏幕截图。

    • 若要选择其他配置文件或设置其他选项,请选择“ 更多”选项。 选择所需的选项,然后选择“ 开始”。

      显示 W.P.R 的展开视图的屏幕截图。

若要停止录制,请执行以下步骤:

  1. 在 WPR 中,选择“ 保存”。
  2. 浏览到要将记录文件保存到的位置。
  3. 输入为其创建记录的问题的说明。
  4. 选择“保存”,然后选择“在 WPA”或确定”中打开。

使用 WPA 分析数据

WPA 是一种功能强大的分析工具,可将灵活的 UI 与广泛的图形功能和可透视且具有全文搜索功能的数据表组合在一起。 WPA 提供了一个 “问题” 窗口,用于浏览任何已识别问题的根本原因。 有关详细信息,请参阅以下文档。

主题 链接
基本过程和详细演练 WPA 快速入门指南
WPA UI 的完整文档 WPA 功能
关键方案的扩展讨论 WPA 方案

若要打开 WPA,请选择“开始”,输入 Windows 性能分析器,然后在搜索结果中选择 Windows 性能分析器

如果在保存录制后未直接从 WPR 打开 WPA,则可以使用 WPA 文件 菜单打开跟踪文件。

显示 W.P.A.的屏幕截图,其中显示了“分析”选项卡中的表和图形。

注意

若要加载符号进行分析,请选择“跟踪”,然后选择“加载符号”。 有关详细信息,请参阅 加载符号或配置符号路径

WPA 用户界面(UI)包括围绕中央工作区的停靠窗口。 此工作区包含 “分析 ”选项卡。 所有窗口都可以停靠在不同的位置。 若要打开已关闭的窗口,请在“窗口”菜单上选择窗口。 WPA 使用以下窗口和选项卡。

窗口或选项卡 说明
图表资源管理器 包含应用于当前录制的所有图形的缩略图。 图形分组为类别。 若要展开类别,请选择缩略图左上角的三角形。 有关详细信息,请参阅图形资源管理器
分析 显示跟踪记录的详细信息和图例。 可以将图形从图形资源管理器拖动到 “分析 ”选项卡。该选项卡以图形和数据透视表格式显示信息。 在表中,垂直金条将键与数据分开。 垂直蓝色条将数据透视表数据与图形元素分开。 有关详细信息,请参阅“分析”选项卡
分析助手 显示有关当前所选图形和表的信息。 有关详细信息,请参阅分析助手
问题 可用于评估平台录制,并列出评估标识的问题。 有关详细信息,请参阅“问题”窗口
详细信息 可用于评估平台录制,并列出所选问题的详细信息和建议的解决方案。 有关详细信息,请参阅“详细信息”窗口
诊断控制台 提供记录中的异常列表,以及与符号加载和解码相关的详细信息。 有关详细信息,请参阅“诊断控制台”窗口

示例

下表描述了几个问题方案、可用于记录数据的 WPR 配置文件以及用于分析数据的推荐图形和数据透视表字段。

场景 WPR 配置文件 要分析的图形和参数
CPU 使用率高 默认配置文件(第一级会审)和/或 CPU 使用率 计算 > CPU 使用率(采样)
关键选项:
  • 进程>堆栈 (按进程列出活动,然后列出该进程中的所有线程)
  • 进程>线程 ID>堆栈 (逐个列出每个线程上的进程的活动)
  • 进程名称>堆栈 (列出与给定名称关联的所有进程中的所有线程的活动
数据: 计数(排序依据)
虚拟分配泄漏 VirtualAlloc 使用情况 Memory > VirtualAlloc Commit LifeTimes
键: 类型进程堆栈
数据: 计数(排序依据)影响大小(MB)
池泄漏 池使用情况 内存 > 池
键: 类型分页池标记堆栈
数据: 计数(总和)影响大小(MB)
句柄泄漏 句柄使用情况 内存 > 句柄
键: 创建进程句柄类型创建堆栈
数据: 对象名称对象句柄
Graph 元素(蓝色条右): 计数
堆泄漏 堆使用情况
跟踪标志*
内存 > 堆分配
键: 类型进程堆栈
数据: 计数影响大小 (B) 总和
等待分析 默认配置文件(第一级会审)或 CPU 使用率 计算 > CPU 使用率(精确)
键: 新进程新线程新堆栈就绪进程就绪线程就绪堆栈
数据: Wait(Max)Wait(Sum)Count(Waits)

* 若要设置跟踪标志,请打开管理命令提示符窗口,然后运行以下命令:

reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<Process_Name>" /v TracingFlags /t REG_DWORD /d 1 /f
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\VirtMemTest64.exe" /v TracingFlags /t REG_DWORD /d 1 /f

注意

在第一个命令中, <Process_Name> 表示要分析的服务或进程的名称。

命令运行后,重启服务或进程。