惠普戴尔超多品牌2008大礼包放送
160G超大硬盘,2G内存免费升级……
Windows Vista下最强的杀毒软件
屡获多次世界第一大奖的杀毒工具
保护你的Windows Vista系统不受侵犯
Windows Vista 系统全方位防护
Norton 360,诺顿360度全面系统保卫
把您的Vista 系统安全武装到牙齿
Windows Vista 装机必备软件大全
Vista之家(www.vista123.com):玩转微软官方性能分析工具xperf,追查Vista开机慢之根源
友情提示:本文不太适合初级用户。
最近一段时间,笔记本上Windows Vista的启动速度越来越慢了,启动时候的滚动条需要滚数十圈才能完成,而到 Explorer 显示完桌面,系统启动全部完成,需要4分多钟,已经慢的不可忍受了。本想重装系统,但是重装的代价也太大了,需要重新配置太多东西,于是乎就想如果找到启动性能的关键瓶颈,对这个瓶颈进行优化以后应该能够解决一些问题。
要解决问题,就需要准确的收集相关的性能信息,我们知道,在Windows XP时代,可以使用 Bootvis 工具收集相关的信息。
Bootvis:一个专门用于收集和分析 Windows XP 启动速度的工具。曾经很不幸的被错误的认为是 Windows XP 的启动速度优化工具。
但是由于 Windows Vista 内核体系的变革,加上全新的引导模式的引入,BootVis 肯定是不能胜任的,看来需要找到一个更好的获取 Windows Vista 相关性能数据的办法了。
Microsoft Windows Performance Toolkit(简称xperf),一个全新的Windows 性能分析工具在这个时候走入我们的视线。
Microsoft Windows Performance Toolkit 是微软最近一段时间内推荐的丈量 Windows 性能的一个全新的工具,适合于 Windows Vista 或更高版本。最新版本是 4.1.1.1,可以在 http://www.microsoft.com/whdc/system/sysperf/perftools.mspx 免费下载到。
安装 Microsoft Windows Performance Toolkit 的过程非常的简单,安装完成以后,就需要开始收集相关的性能数据了。本次我关注的是 Windows Vista 的启动速度,因此我需要收集的是Boot阶段的数据。
用管理员模式启动 cmd.exe,然后进入 Microsoft Windows Performance Toolkit 安装目录,输入下面的命令:
xbootmgr.exe -trace boot
输入这个命令以后,xbootmgr 会自动重启系统,然后开始收集相关的启动信息数据。重启完成以后,xbootmgr 会等待 explorer 全部启动完成以后,生成一个日志文件(扩展名是:etl)到 Microsoft Windows Performance Toolkit 安装目录下面。下面我们需要对这个文件进行分析。
分析的过程有很多方法,最简单的方法就是进入命令行模式,切换到 Microsoft Windows Performance Toolkit 安装目录下,输入 xperf -i boot_BASE+CSWITCH_1.etl -o boot.xml -a boot 命令自动分析,然后输出一个 xml 的报告文件。这个
下面我要说的是一个更细致的分析过程。
1、打开 etl 文件:使用 xperfview boot_BASE+CSWITCH_1.etl 命令,会调用 xperfview 工具对 etl 文件进行详细的解析。etl 文件是 Microsoft Windows Performance Toolkit 原始的性能数据文件,里面记录了所有收集到的数据。
2、xperfview 解析完成以后,会看到类似于下方的图片:

3、找到 process lifetimes 分类(如上图),会发现到50多秒的时候,系统里面的第一个用户态进程smss.exe才启动(进程ID:748),之前的时间都花费在 system 上。换句话说,运行在内核态的各种驱动程序,包括 Windows 内核和执行体用了 50 多秒才完成启动子系统之前的初始化动作,这个时间花费的也太长了。
由于初始化 Windows 内核和执行体等动作用了 50 多秒,这个非常的不正常,因为我们需要看看在这50秒内的详情。
在 Disk Utilization by process 里面,选择 0-50 秒这个时间段:

4、然后点击鼠标右键,选择 Detail Graph,会出现下面的图:

在这个图片里面,可以看在 0-50 秒内磁盘访问最高的区域是什么,C盘中间部分的访问频度非常的高。更细致的数值分析就需要使用另外一张报表了。
5、在 Disk Utilization by process 里面,还是选择 0-50 秒这个时间段:点击鼠标右键,选择 Summary Table,xprefview 会显示如下图所示的报告,这个报告对于分析性能分析来说,会显得会更为直观一点。

这张图标给了我们一个非常详细的性能分析和解释数据。在 0-50 秒时间内,system 进程花费了 42445587.434 us 的时间,其中,花费最多的时间是在处理 MFT 表的时候,尽然用了近10秒的时间。
Vista之家小贴士:什么是$MFT,什么是MFT?
NTFS是自Windows NT开始引入的文件系统,它具有许多新特性。NTFS中,卷中所有存放的数据均在一个叫$MFT的文件中,叫主文件表(Master File Table)。而$MFT则由文件记录(File Record)数组构成。File Record的大小一般是固定的,通常情况下均为1KB,这个概念相当于Linux中的inode。File Record在$MFT文件中物理上是连续的,且从0开始编号。$MFT仅供File System本身组织、架构文件系统使用,这在NTFS中称为元数据(Metadata)。
6、根据上面的数据,我们已经找到了在启动最开始的50秒时间内,有10秒钟的时间花费在了出来MFT表上面,另外,读取一些字体文件的时间也非常的慢。
7、知道数值以后,后面就是优化过程了。根据 xperf 给出的数据初步判断:开机慢的原因和文件IO速度变慢是相关的。有人会问,而影响文件IO速度慢的原因有很多,但是请注意一点,在前50秒内,由于没有任何的用户态进程介入,因此IO速度慢的原因就很简单了,大部分原因是因为磁盘碎片导致的,也有可能是由于硬盘坏道导致的。根据 xperf 的数据,处理MFT表用了10秒钟时间,如果能够把MFT的处理时间加快,同时减小碎片数量,系统的启动速度就能加快不少了(Vista之家提示:Vista自带的磁盘碎片整理是不支持MFT整理的,而DiskKeeper这样的软件虽然支持但是很容易造成磁盘分区表损害,慎之慎之)。
在进行系统性能优化和分析的过程中,数据的收集是至关重要的。业界有很多性能数据收集工具,Microsoft也出了不少类似的软件,但是易用性都不是很好。Microsoft Windows Performance Toolkit 作为一款新型的面向于Windows Vista 或更高平台的性能工具,以其简单的操作和友好的界面,希望能够得到更多的使用和更广泛使用。
在本次的 Windows Vista 性能分析里面,我们介绍了一个使用 xperf 对Windows Vista 启动速度进行分析的过程,在后续的 Windows Vista 性能分析系列文章里面,我们还会持续关注在更多的和 Windows Vista 性能相关的话题上面,希望能够让大家对 Windows 性能有一个更好的认识。
Vista之家(www.vista123.com),爱上网,爱上Vista123.com
|
Windows Vista 最好的木马间谍查杀软件
热门文章
| ||

English



