1、下載和安裝
進(jìn)入http://www.microsoft.com/whdc/system/sysperf/perftools.mspx可以看到WPT有3個(gè)版本,大家可以根據(jù)自己的CPU類型選擇下載相應(yīng)的版本。WPT的安裝非常簡單,依據(jù)向?qū)Ъ纯赏瓿伞F淠J(rèn)的安裝目錄是C:Program FilesMicrosoft Windows Performance Toolkit,安裝完成后在“開始”菜單的“所有程序”下創(chuàng)建相應(yīng)的工具快捷方式。(圖1)
2、啟動(dòng)性能分析
Vista用戶往往比較關(guān)注其啟動(dòng)的速度,我們可以用WPT收集系統(tǒng)啟動(dòng)信息,然后進(jìn)行性能分析找到影響系統(tǒng)啟動(dòng)的因素,最后采取相應(yīng)的優(yōu)化措施。
1).啟動(dòng)信息收集
收集系統(tǒng)啟動(dòng)信息,需要以管理員身份在命令行下運(yùn)行相應(yīng)的WPT工具。首先執(zhí)行“開始→所有程序→附件”,右鍵“命令提示符”選擇“以管理員身份運(yùn)行”打開一個(gè)命令提示符,然后定位到WPT的安裝目錄輸入命令“xbootmgr.exe -trace boot”,命令執(zhí)行后Vista會(huì)自動(dòng)重啟,收集相關(guān)的啟動(dòng)信息。重啟完成后,會(huì)在WPT的安裝目錄下生成一個(gè)名為boot_BASE+CSWITCH_1.etl的日志文件。這個(gè)文件記錄了筆者的Vista系統(tǒng)啟動(dòng)的相關(guān)信息。(圖2)
2).啟動(dòng)性能分析
以管理員身份運(yùn)行cmd,然后定位到WPT安裝目錄輸入命令“xperfview boot_BASE+CSWITCH_1.etl”,調(diào)用WPI工具包中的xperfview對(duì)啟動(dòng)信息進(jìn)行分析。
(1).CPU相關(guān)
從圖3可以非常形象地看到在Vista啟動(dòng)的過程中各個(gè)時(shí)間段的CPU的利用率。粗略來看,筆者的Vista在啟動(dòng)過程中CUP的利用率逼近50%,可見CPU的性能是致使Vista啟動(dòng)時(shí)間達(dá)到300秒之多的一個(gè)重要因素。需要說明的是筆者的CPU是P4-2.4Mhz,而且是在虛擬機(jī)上測(cè)試,如果在真實(shí)的物理機(jī)上測(cè)試CUP的利用率會(huì)低很多。(圖3)
(2).Disk相關(guān)
Disk I/O圖表顯示的是系統(tǒng)啟動(dòng)過程中磁盤讀寫情況,其中紅色是讀情況,藍(lán)色是寫情況。這對(duì)于我們理解Vista系統(tǒng)啟動(dòng)過程非常有幫助,可以看到系統(tǒng)啟動(dòng)主要以讀為主,并且讀寫操作是呈波浪變化的。我們可以打開I/O Counts下拉列表,勾選相應(yīng)的項(xiàng)進(jìn)行單項(xiàng)或者多項(xiàng)查看。(圖4)
Disk Utilization圖表中可以查看系統(tǒng)啟動(dòng)過程中各個(gè)時(shí)刻的磁盤利用率。可以看到在系統(tǒng)啟動(dòng)最初磁盤利用率最大幾乎達(dá)到100%,可見Vista在啟動(dòng)中非常復(fù)雜頻繁的磁盤操作。(圖5)
#p#副標(biāo)題#e#
(3).process相關(guān)
Process Lifetimes圖表是xperf中非常精彩的一個(gè)部分,從圖6中我們可以看到Vista啟動(dòng)中都啟動(dòng)了哪些進(jìn)程,以及各個(gè)進(jìn)程啟動(dòng)的先后順序和各自的生命周期。通過這個(gè)圖表我們就能非常形象地了解Vista啟動(dòng)的具體細(xì)節(jié)。可以看到Idle和System是Vista最開始啟動(dòng)的系統(tǒng)態(tài)進(jìn)程,并且貫穿了系統(tǒng)啟動(dòng)的始終。而真正的啟動(dòng)是從smss.exe這個(gè)用戶態(tài)進(jìn)程開始的,在它啟動(dòng)之前系統(tǒng)準(zhǔn)備了將近80秒,換句話說,運(yùn)行在內(nèi)核態(tài)的各種驅(qū)動(dòng)程序,包括Windows內(nèi)核和執(zhí)行體用了80多秒才完成啟動(dòng)子系統(tǒng)之前的初始化動(dòng)作,這個(gè)時(shí)間花費(fèi)的也太長了。(圖6)
由于初始化Windows內(nèi)核和執(zhí)行體等動(dòng)作用了80多秒,這個(gè)非常的不正常,因此我們需要看看在這80秒內(nèi)的詳情。在Disk Utilization by process里面,選擇0-80秒這個(gè)時(shí)間段,然后點(diǎn)擊鼠標(biāo)右鍵,選擇 Detail Graph,會(huì)出現(xiàn)圖7,可以看到C盤開始部分的訪問頻率非常的高。(圖7)
如果需要更細(xì)致的數(shù)據(jù)分析我們可以在Disk Utilization by process里面,還是選擇0-80秒這個(gè)時(shí)間段:點(diǎn)擊鼠標(biāo)右鍵,選擇Summary Table,xprefview 會(huì)顯示如圖8所示的報(bào)告,這個(gè)報(bào)告對(duì)于分析性能分析來說,會(huì)顯得會(huì)更為直觀一點(diǎn)。這張圖表給了我們一個(gè)非常詳細(xì)的性能分析和解釋數(shù)據(jù),在0-80秒時(shí)間內(nèi),system進(jìn)程花費(fèi)了36669986.033 us的時(shí)間,可以非常直觀地看到Vista在處理各個(gè)項(xiàng)目中所花費(fèi)的時(shí)間,比如處理WindowswinsxsManifests和MFT表的是花費(fèi)的時(shí)間就比較多。我們就可以根據(jù)這些分析進(jìn)行Vista啟動(dòng)的優(yōu)化,比如清除Manifests中無用的文件已經(jīng)卸載沒用的字體文件等。另外,根據(jù)WPT給出的數(shù)據(jù)初步判斷:開機(jī)慢的原因和文件IO速度變慢是相關(guān)的。而影響文件IO速度慢的原因有很多,在前80秒內(nèi),由于沒有任何的用戶態(tài)進(jìn)程介入,因此造成IO速度慢的原因主要是因?yàn)榇疟P碎片導(dǎo)致的,也有可能是由于硬盤壞道導(dǎo)致的。加快MFT的處理時(shí)間,同時(shí)減小碎片數(shù)量,就能夠?yàn)橄到y(tǒng)啟動(dòng)提速。(圖8)
(4).Services相關(guān)
Services圖表詳細(xì)顯示了系統(tǒng)啟動(dòng)中各個(gè)服務(wù)的啟動(dòng)順序和時(shí)間等信息。可以看到服務(wù)啟動(dòng)是在核心態(tài)進(jìn)程啟動(dòng)完成,第一個(gè)用戶態(tài)進(jìn)程smss.exe啟動(dòng)后才開始的。第一個(gè)啟動(dòng)的服務(wù)器是PlugPlay,由于虛擬機(jī)沒有安裝殺毒軟件,如果有殺毒軟件的話,我們可以看到殺毒軟件的服務(wù)到底在什么時(shí)候啟動(dòng),是從何時(shí)開始對(duì)系統(tǒng)實(shí)施保護(hù)的。(圖9)
(5).Winlogon相關(guān)
我們知道WinLogon.exe是Windows NT登陸管理器,它用于處理你系統(tǒng)的登陸和登陸過程,該進(jìn)程在系統(tǒng)啟動(dòng)過程中非常重要。在Winlogon圖表中可以看到其在Vista啟動(dòng)過程中的作用范圍,以及與其相關(guān)的技術(shù)細(xì)節(jié)。(圖10)
總結(jié):利用WPT對(duì)Vista進(jìn)行啟動(dòng)分析是非常有益的,不僅能夠能夠準(zhǔn)確定位影響系統(tǒng)啟動(dòng)的因素,而且對(duì)于我們理解Vista的啟動(dòng)原理也大有裨益。其實(shí)WPT是一款面向高端的系統(tǒng)檢測(cè)工具,除了可以進(jìn)行系統(tǒng)的啟動(dòng)檢測(cè)外,還有更多的用途。希望大家深入挖掘,利用WPT的強(qiáng)大功能對(duì)Vsita有更深入的認(rèn)識(shí)。