微软Xperf使用手册:监控Windows性能新方案

系统 Windows
IT管理员总是在不停地寻找新工具,从而使得自己的生活更简单。下载工具时我通常都很细心,对于那些不需送货但价格却贵到“血腥”的工具更是谨慎。不过,对于微软最近在性能检测领域提供的叫做Xperf的新工具,我感到高兴和惊讶。

IT管理员总是在不停地寻找新工具,从而使得自己的生活更简单(如果这些工具是免费的,那就更好了)。下载工具时我通常都很细心,对于那些不需送货但价格却贵到“血腥”的工具更是谨慎。不过,对于微软最近在性能检测领域提供的叫做Xperf的新工具,我感到高兴和惊讶。

Xperf是一个先进的故障调试工具,可深入调试各种性能问题,其高度是Perfmon无法企及的。它是产品套件Windows性能工具包(Windows Performance Toolkit ,WPT)的一部分,而WPT则属于微软软件开发包(Microsoft Software Development Kit ,SDK)。Xperf是Windows事件跟踪系统(Event Tracing for Windows,ETW)的补充。ETW则是服务器操作系统的一个内置组件,提供详细的系统性能和系统数据。

Xperf工具能够处理诸多问题,如系统响应问题、启动缓慢、高CPU和磁盘利用率、应用程序延迟及响应缓慢等。它支持在x86、x64和IA-64等平台上的跨平台使用时CPU占用低于2.5%,同时每秒能收集超过20000个系统事件。

换言之,这是一个你绝对会添加到工具箱中的工具。但在我们深入了解Xperf提供的诸多功能之前,我们首先通过一个简短的教程了解一下如何安装Xperf,以及如何利用这个工具调试Windows的各种系统性能问题。

安装Xperf

正如前面提到的那样,Windows性能工具包(WPT)随着Windows软件开发包(SDK)一起发布。在安装SDK之前,你必须首先安装Microsoft .NET Framework 4。除非你想安装整个高达4GB的SDK,否则你就只应该选择Windows性能套件(Windows Performance Toolkit)和Windows调试工具(Debugging Tools for Windows)这两个选项,如图1所示。

你还应该选择可再分发包(Redistributable Package)下的WPT和调试工具(Debugging Tool)选项,这样以后你才可以单独安装使用某个工具,而不用被迫重新安装SDK。安装产生的Windows性能套件和调试工具可以在如下位置找到:

C:\Program Files\Microsoft SDKs\Windows\v7.1\Redist\Windows Performance Toolkit

微软,Xperf,监控,Windows,性能

图1:Windows SDK的安装选项

如果你在SDK的安装过程中遇到问题,你可以参考这个故障排除页面寻求帮助,如清理AppData\Local\Temp目录下的文件(我经常需要这么做)。安装完成后,系统会为WPT新建一个程序组,如图2所示。相关的工具放在下面这个目录中:

C:\Program Files\Microsoft Windows Performance Toolkit

微软,Xperf,监控,Windows,性能

图2:Windows性能工具集程序组

配置和使用Xperf

在出问题的服务器上安装WPT(Xperf)之后,下一步就是开始收集事件跟踪信息。根据所遇的问题的不同,你可以跟踪并收集大量的事件。我们可以从下面这个Xperf的CLI命令开始:

Xperf –on DiagEasy

这条命令会收集多个种类的内核事件,包括PROC_THREAD、LOADER、DISK_IO、 HARD_FAULTS、 DPC、 INTERRUPT、 CSWITCH 和 PERF_COUNTER,并将数据记录到一个名为kernel.etl的日志文件中。想要列出所有种类的内核事件,使用下面这条命令:

Xperf –providers KG

注意:丰富的联机帮助对每类事件都做了详细解释

开始收集事件数据后,让服务器重现你准备调试的问题,然后使用如下命令结束收集:

Xperf –d trace.etl

这将合并缓存在kernel.etl中的数据,并最终创建一个名为trace.etl的跟踪日志文件。跟踪日志文件既可以在出现问题的服务器上进行调试,也可以在另外一台装有WPT的服务器上进行。要查看产生的图形和图表,使用下面这条命令:

Xperf trace.etl

跟踪文件将被分两步处理,产生各种图表。默认的图形包括:

  • 各CPU的使用率
  • 各个进程的CPU使用率
  • 各个线程的CPU使用率
  • CPU空闲状态
  • 磁盘I/O、磁盘使用率
  • 各个进程的磁盘使用率
  • 进程的生命周期
  • DPC的CPU使用率
  • 中断的CPU使用率
  • 硬件故障
  • 其它常见事件

将鼠标指针悬停在图形的某一特定线上,你可以看到更多细节,如占用所有CPU使用时间的进程名字。举个例子,在图3中你可以清楚地看到杀毒程序Rtvscan.exe是如何占用CPU的。

微软,Xperf,监控,Windows,性能

图3:CPU使用率-进程图

使用Xperf的另一个方便之处是你可以将某一特定时间范围内的图形放大,从而更清晰地查看这一区域内的图形。图4中,你可以看到在磁盘占用率这幅图里,前60秒后出现了一个峰值。用鼠标指针点击并拖动图上的那个部分,然后右击,选择“放大所选区域”(Zoom To Selection),放大出现问题的时间区域。这样会产生一幅包含你指定时间区域的新图。要回到原图,右击鼠标然后选择“取消放大”(Unzoom)。

微软,Xperf,监控,Windows,性能

图4:Xperf的缩放功能

为了得到更加详细的信息,你可以右击图形,然后选择“汇总表”(Summary Table)。这会产生一个图表,记录所有与该图形相关的计数器和数据。例如,图5就展示了磁盘I/O图的汇总表。表中***行清晰地显示了Rtvscan.exe进程进行着大量的读操作,这意味着它正在进行病毒扫描。

微软,Xperf,监控,Windows,性能

图5:磁盘I/O图的磁盘汇总表

正如你看到的那样,Xperf是一个非常强大且直观的工具,能够真正帮助你分析系统性能问题。然而,我刚刚谈到的仅仅是Xperf众多功能中的冰山一角,该工具还适用于系统启动缓慢问题的检测、高内核和中断时间以及重点文件的分析等。每一项功能都值得单独为其功能和好处进行一番讨论。

【编辑推荐】

  1. 性能监视入门指南
  2. 强力推荐经典Windows 桌面工具下载
  3. 十分钟凝聚微软25年 Windows版本进化之路
  4. 在Mac系统上读取Windows NTFS的方法
  5. Windows事件追踪入门与使用方式
责任编辑:张浩 来源: TT中国
相关推荐

2010-05-26 12:45:49

SVN使用手册

2009-10-26 11:11:33

linux Emacs

2010-05-26 12:35:11

2011-08-09 13:22:31

iPhoneSqlite数据库

2009-12-02 18:03:00

PHP cURL

2010-08-31 08:59:06

marginHTML

2010-05-26 14:01:47

SVN安装使用手册

2010-05-19 10:57:34

Subversion配

2010-05-21 12:37:49

SVN使用教程

2010-05-26 13:17:55

SVN简易使用手册

2010-05-26 12:59:48

SVN简易使用手册

2010-05-27 13:35:43

SVN简易使用手册

2013-10-31 14:55:22

2010-05-20 19:12:37

2010-06-07 12:38:37

Cacti使用手册

2010-05-26 13:51:40

SVN安装使用手册

2010-06-09 17:01:26

Cacti使用手册

2010-08-25 10:53:04

CSSmargin-bott

2015-08-06 11:10:46

开源IaaS软件ZStack本地存储

2011-09-05 16:57:40

MTK开发工具
点赞
收藏

51CTO技术栈公众号