本文独家授权IT专家网,版权所有请勿转载!
      Microsoft Windows Performance Toolkit(简称WPT)是微软用来对Windows进行性能检测的工具,适合于Windows Vista。利用其对Windows系统进行性能分析,找到影响性能的关键瓶颈,然后我们可以据此进行系统优化以提升其性能。下面将演示利用其对Vista系统进行性能检测。
     1、下载和安装
      进入[url]http://www.microsoft.com/whdc/system/sysperf/perftools.mspx[/url]可以看到WPT有3个版本,大家可以根据自己的CPU类型选择下载相应的版本。WPT的安装非常简单,依据向导即可完成。其默认的安装目录是C:\Program Files\Microsoft Windows Performance Toolkit,安装完成后在“开始”菜单的“所有程序”下创建相应的工具快捷方式。(图1)
        2、启动性能分析
        Vista用户往往比较关注其启动的速度,我们可以用WPT收集系统启动信息,然后进行性能分析找到影响系统启动的因素,最后采取相应的优化措施。
    1).启动信息收集
    收集系统启动信息,需要以管理员身份在命令行下运行相应的WPT工具。首先执行“开始→所有程序→附件”,右键“命令提示符”选择“以管理员身份运行”打开一个命令提示符,然后定位到WPT的安装目录输入命令“xbootmgr.exe -trace boot”,命令执行后Vista会自动重启,收集相关的启动信息。重启完成后,会在WPT的安装目录下生成一个名为boot_BASE+CSWITCH_1.etl的日志文件。这个文件记录了笔者的Vista系统启动的相关信息。(图2)
    2).启动性能分析
    以管理员身份运行cmd,然后定位到WPT安装目录输入命令“xperfview boot_BASE+CSWITCH_1.etl”,调用WPI工具包中的xperfview对启动信息进行分析。
   
     (1).CPU相关
    从图3可以非常形象地看到在Vista启动的过程中各个时间段的CPU的利用率。粗略来看,笔者的Vista在启动过程中CUP的利用率逼近50%,可见CPU的性能是致使Vista启动时间达到300秒之多的一个重要因素。需要说明的是笔者的CPU是P4-2.4Mhz,而且是在虚拟机上测试,如果在真实的物理机上测试CUP的利用率会低很多。(图3)
     (2).Disk相关
     Disk I/O图表显示的是系统启动过程中磁盘读写情况,其中红色是读情况,蓝色是写情况。这对于我们理解Vista系统启动过程非常有帮助,可以看到系统启动主要以读为主,并且读写操作是呈波浪变化的。我们可以打开I/O Counts下拉列表,勾选相应的项进行单项或者多项查看。(图4) 

     
     Disk Utilization图表中可以查看系统启动过程中各个时刻的磁盘利用率。可以看到在系统启动最初磁盘利用率最大几乎达到100%,可见Vista在启动中非常复杂频繁的磁盘操作。(图5)
     (3).process相关
     Process Lifetimes图表是xperf中非常精彩的一个部分,从图6中我们可以看到Vista启动中都启动了哪些进程,以及各个进程启动的先后顺序和各自的生命周期。通过这个图表我们就能非常形象地了解Vista启动的具体细节。可以看到Idle和System是Vista最开始启动的系统态进程,并且贯穿了系统启动的始终。而真正的启动是从smss.exe这个用户态进程开始的,在它启动之前系统准备了将近80秒,换句话说,运行在内核态的各种驱动程序,包括Windows内核和执行体用了80多秒才完成启动子系统之前的初始化动作,这个时间花费的也太长了。(图6)
 
    由于初始化Windows内核和执行体等动作用了80多秒,这个非常的不正常,因此我们需要看看在这80秒内的详情。在Disk Utilization by process里面,选择0-80秒这个时间段,然后点击鼠标右键,选择 Detail Graph,会出现图7,可以看到C盘开始部分的访问频率非常的高。(图7)
    如果需要更细致的数据分析我们可以在Disk Utilization by process里面,还是选择0-80秒这个时间段:点击鼠标右键,选择Summary Table,xprefview 会显示如图8所示的报告,这个报告对于分析性能分析来说,会显得会更为直观一点。这张图表给了我们一个非常详细的性能分析和解释数据,在0-80秒时间内,system进程花费了36669986.033 us的时间,可以非常直观地看到Vista在处理各个项目中所花费的时间,比如处理Windows\winsxs\Manifests和MFT表的是花费的时间就比较多。我们就可以根据这些分析进行Vista启动的优化,比如清除Manifests中无用的文件已经卸载没用的字体文件等。另外,根据WPT给出的数据初步判断:开机慢的原因和文件IO速度变慢是相关的。而影响文件IO速度慢的原因有很多,在前80秒内,由于没有任何的用户态进程介入,因此造成IO速度慢的原因主要是因为磁盘碎片导致的,也有可能是由于硬盘坏道导致的。加快MFT的处理时间,同时减小碎片数量,就能够为系统启动提速。(图8)
     (4).Services相关
     Services图表详细显示了系统启动中各个服务的启动顺序和时间等信息。可以看到服务启动是在核心态进程启动完成,第一个用户态进程smss.exe启动后才开始的。第一个启动的服务器是PlugPlay,由于虚拟机没有安装杀毒软件,如果有杀毒软件的话,我们可以看到杀毒软件的服务到底在什么时候启动,是从何时开始对系统实施保护的。(图9)
     (5).Winlogon相关
    我们知道WinLogon.exe是Windows NT登陆管理器,它用于处理你系统的登陆和登陆过程,该进程在系统启动过程中非常重要。在Winlogon图表中可以看到其在Vista启动过程中的作用范围,以及与其相关的技术细节。(图10)
    总结:利用WPT对Vista进行启动分析是非常有益的,不仅能够能够准确定位影响系统启动的因素,而且对于我们理解Vista的启动原理也大有裨益。其实WPT是一款面向高端的系统检测工具,除了可以进行系统的启动检测外,还有更多的用途。希望大家深入挖掘,利用WPT的强大功能对Vsita有更深入的认识。