用Windows XP自帶的效能監視器測試
-Windows XP系統自帶的效能監視器,如下圖所示:
如果要檢視系統的記憶體佔用、CPU佔用等效能資訊,大家通常會想到Windows的工作管理員,不過在Windows 2000/XP中還有一個功能更為強大的工具,可以檢視更為詳細的系統性能資訊。通過這些資料可以瞭解系統的工作狀態以及資源的使用情況,而且它還具備日誌記錄和警報功能。根據日誌記錄可以診斷系統性能問題,從而優化系統。通過警報功能則可以監視系統中的效能資料,當達到指定條件時及時通知使用者,可謂是電腦的“火警”監測器(下面主要以Windows XP為例,Windows 2000基本相同)。
開啟“火警”監測器
單擊“控制面板→管理工具→效能”,或在開始選單“執行”欄中輸入“Perfmon.msc”即可開啟系統性能管理工具,在左邊可以看到功能分為“系統監視器”和“系統日誌和警報”兩大模組。
系統監視器——透過現象看本質
1.理解重要概念
系統監視器以圖形方式實時顯示出指定系統性能資料。在使用前,首先需要理解一些概念的含義。
(1)效能物件:所謂效能物件,就是指影響系統性能表現最關鍵的幾個部件:CPU、記憶體、硬碟等。Windows XP從它們那裡獲得性能資料。要監視系統狀態,首先就要選擇這些物件。
(2)效能計數器:上面提到的關鍵部件的效能隨時都在變化,是動態的資料,所以必須有一臺“攝像機”隨時監控它們,並把記錄下來的效能表現隨時回放給我們。每個效能物件的計數器就扮演著這樣的角色,每個計數器用於描述與效能有關的特定方面的資料。為了統一衡量標準,所以效能資料都以具體數值來表示。例如,“Memory”(記憶體)物件提供的“Pages/sec”(分頁/秒)計數器跟蹤虛擬記憶體讀取和寫入速度,也就是每秒處理的分頁數。
什麼是分頁(Page)?
還記得我們今年第5期《虛擬記憶體到底應該怎麼設?》嗎?裡面介紹了“Page”這個概念,再讓我們一起復習一下吧:為了便於管理和存放資料,Windows會將實體記憶體(RAM)與虛擬記憶體分割成許多小塊,稱為Page(分頁),每個Page為4KB,它也是記憶體在Windows系統中的單位,每個Page都有編號。程式執行時,系統就會將該程式所需檔案先從硬碟調入並儲存到這些記憶體分頁中,之後要用那個檔案,只需指明檔案所在相應分頁的編號即可,呼叫起來非常方便。Windows 2000/XP的虛擬記憶體檔案Pagefile.sys被稱為分頁檔案(或頁面檔案)。
2.如何閱讀監視器中的資料
在Windows XP中,系統監視器預設會裝入三個效能計數器:“Pages/sec”(記憶體分頁/秒)、“Avg. Disk Queue Length”(磁碟訪問序列的平均值)和“% Processor Time”(處理器執行有效執行緒時間的百分比)。它們分別以黃、藍、綠三種顏色的線條來表示。在視窗右邊的圖表中可以看到實時的計數器曲線圖表(單擊工具欄中的按鈕切換成直方圖或者報表顯示),圖表中的紅色豎線在不斷向右移動,它表示圖表的更新過程。在下面的列表框中顯示了三個計數器的詳細資料,包括計數器所屬的效能物件以及所屬電腦資訊,選中某個計數器,然後單擊工具欄中的“突出顯示”按鈕,可以讓該計數器的曲線在圖表中以粗白線的形式顯示出來,更便於觀察(見圖1)。
三個關鍵效能計數器
★“Pages/sec”(記憶體分頁/秒):主要用來表示平均每秒從虛擬記憶體中進行讀取和寫入的記憶體分頁數。應用程式執行時,並沒有把全部內容都載入到記憶體中,而是當記憶體中沒有所需資訊時才會到硬碟中呼叫。呼叫的記憶體分頁越多、越頻繁,系統性能就越差。
★“Avg. Disk Queue Length”(磁碟訪問序列的平均值):這個計數器的功能實際上用於多個物理磁碟共存的時候,此時磁碟效能會超過單個硬碟的效能,如果你安裝有多塊硬碟,那麼這個計數器有時會顯示出100%(甚至更高)的狀態。
★“%Processor Time”(處理器執行有效執行緒時間的百分比):它反映的是CPU實際花費在有效執行緒執行和請求服務處理上的時間,用100%減去該計數器的讀數就是系統處於空閒狀態的時間。CPU不像收款員,它不會幹坐在那裡等待下一個任務的到來,而必須總有一些事情去做。就像我們開啟電腦,不管是否進行操作,它的電源線上始終有電流流過,為了保證CPU始終有事可做,當它沒有其他任務時,Windows便為它準備了另一件事,就是呼叫“空閒程序”(也就是我們以前曾經介紹過的“System Idle Process”,在系統沒有什麼操作時,它常常會顯示為99%或100%)。實際上,系統在計算處理器時間時,並不是對每個不同的執行緒執行時間進行統計,而只是對空閒程序的執行時間進行計算,然後只要簡單地用100%減去空閒程序的時間,就得到了“%Processor
Time”。
下面我們通過一個例項來了解一下系統監視器在記憶體分析中的應用。
例項1:我的電腦需要增加記憶體嗎?
記憶體使用情況是影響系統性能的最重要因素。當記憶體不足時,就會使用系統頁面檔案,雖然這樣可以使系統得到更多可用記憶體,但畢竟硬碟速度和記憶體速度相差很多,頻繁讀取和寫入頁面檔案,會降低系統性能。通過系統監視器,可以觀察到系統記憶體不足以及頁面檔案的使用情況,從而指導你決定是否該新增實體記憶體。
新增計數器
首先要新增一個“Memory”物件的“Available MBytes”(可用記憶體數)計數器。在圖表中右擊,選擇“新增計數器”開啟對話方塊,選中“使用本地計算機計數器”選項,並在下面的“效能物件”下拉框中選擇“Memory”物件。下面會列出該物件的效能計數器,選中“Available MBytes”後單擊“新增”按鈕(見圖2)。單擊“說明”按鈕可檢視該計數器的功能描述。新新增的計數器會顯示在主介面下的計數器列表中,不過預設的線條顏色可能會與已經存在的計數器一樣,這時可以右擊“Available MBytes”計數器,選擇“屬性”,在開啟的對話方塊中“顏色”下拉框中選擇其他顏色即可。
分析計數器
“Available MBytes”計數器表明了當前可用的記憶體位元組數,如果它的值小於5MB,說明實體記憶體可能不足,或某些程式沒有釋放記憶體。這裡還需要結合列表中已經存在的“Pages/sec”計數器進行綜合分析。該計數器代表頁面檔案的交換速度,如果“Pages/sec”的值為20或更大,表明系統使用記憶體頁面檔案比較頻繁,這時可嘗試退出那些大記憶體佔用程式,並檢視“Pages/sec”計數器,看記憶體頁交換速率是否有顯著變化,如果變化明顯,說明記憶體不足的可能性極大,需要新增記憶體。
小提示
系統監視器預設的三個計數器無法直接刪除,但它們會降低監視器啟動的速度,如果要讓監視器啟動時不裝入任何計數器,可以開啟Windows\system32目錄,取消“perfmon.msc”檔案的只讀屬性,然後重啟效能管理工具,選中要刪除的計數器,單擊工具欄中“刪除”按鈕,然後選擇選單“檔案→儲存”,即可將修改後的“perfmon.msc”檔案儲存到磁碟,再次啟動時,就不會出現被刪除的計數器了。通過此方法你也可以定製自己需要的啟動計數器。
3.其他常用效能計數器
小提示
就像任何程式一樣,系統監視器本身也要佔用一定資源。它通常會使用最少5MB記憶體和1%~5%的CPU時間。當然,磨刀不誤砍柴功,這點代價換來對系統的瞭解,還是值得的。
例項2:軟體和硬體,到底誰是元凶?
有些朋友會發現自己的電腦配置並不低,但用起來感覺卻很慢,這時利用效能監視器,可以比較輕鬆地找出問題到底出在硬體還是軟體上。下表是常用的計數器,如果數值超過後面的“檢視值”,則需要關注了。
基本計數器
物件 計數器 檢視值
Processor %Preocessor Time(處理器時間) >80%
Physical Disk %Disk Time(磁碟時間) >80%
Memory Pages/sec(分頁/秒) >12
(1)快速識別硬體故障
對於硬體故障,原因和現象比較複雜,一般不好判斷。這裡介紹一個簡單的識別方法:在Processor物件下面分別建立“%Interrupt Time”和“%Processor Time”兩個計數器。執行這個計數器一段時間,看看這兩個計數器在同一時間是否都比較高(超過80%),如果都高,那麼很可能是硬體問題。
一般來說,如果系統本身比較老或剛搬動過,那麼很可能是電腦中的插卡鬆動,需要插緊,同時還有機箱中灰塵過厚也會引發硬體問題;也可能是硬體驅動程式有問題,需要更新;或者硬體存在中斷或DMA衝突;存在一些比較老的裝置,比如:ISA卡等。
如何查詢有問題的硬體呢?如果發現兩個計數器同時都比較高,可再觀察正在進行的操作,比如:正在聽音樂,那麼可能就是音效卡的問題了。
(2)捉出軟體“罪犯”
如果排除了硬體故障,就要從軟體方面找原因了。按照同樣方法,可以建立一個“%Processor Time”的計數器,在視窗右側選擇要監視的程序專案。按照這樣的方法,把懷疑有問題的程序依次監視起來,然後就可以用曲線圖查看了。比如,我們懷疑Word、QQ、Photoshop以及一款防毒軟體是系統性能下降的原因,就分別監視這幾個軟體的程序,一般和他們主程式的名稱是一致的。
監視開始後,可以在曲線圖上看到這幾個程序使用CPU時間的走勢,如果有某個程式一直在曲線圖的上層,如超過80%以上,那麼它是影響效能的主要原因。應該儘快關閉這個程序,重啟電腦,看看能否解決問題,如果不能,則應該安裝補丁程式或更換到最新版本。
小提示
根據我們的經驗,16位程式往往會在很大程度上影響系統性能,如果在工作管理員的“程序”列表中看到“NTVDM”和“WOWEAEC.exe”,那麼可以確定當前有16位程式在執行。
效能日誌和警報——系統狀態的晴雨表
在主介面左邊展開“效能日誌和警報”節點,可以看到3個子模組:計數器日誌、跟蹤日誌和警報。下面通過兩個例項來了解其具體使用。
例項1:通過計數器日誌設定最佳頁面檔案
我們知道,頁面檔案(也就是常說的虛擬記憶體)的大小是影響系統性能的重要因素。無論是系統自動分配還是公式化的1.5倍記憶體設定,都不是最優的設定方法,通過計數器可以觀察到系統真實的頁面檔案使用情況。不過在系統監視器中只能簡單地檢視實時資料,而通過計數器日誌記錄功能則可以提供一個長時間的頁面檔案資料報告。可根據資料分析系統對頁面檔案的需求,做出合理設定。
首先要設定一個512MB的大頁面檔案。開啟“控制面板→系統→高階”選項卡,單擊“效能”中的“設定”按鈕,在開啟的對話方塊中單擊“高階”選項卡,點選“更改”按鈕,選擇“自定義大小”選項,並指定頁面檔案的“初始大小”和“最大值”均為“512”MB,然後單擊“設定”按鈕,重啟系統使新頁面檔案生效。
決定頁面檔案的大小,就要監視系統對當前這個頁面檔案的使用情況,這需要先新增一個計數器。在效能管理工具中右擊左邊的“計數器日誌”,選擇“新建日誌設定”,輸入名稱“頁面檔案”後回車,出現計數器設定對話方塊。在“常規”選項卡中單擊“新增計數器”按鈕,在“效能物件”下拉框中選擇“Paging File”,並在下面選擇“% Usage Peak”計數器(見圖3),右邊的“從列表選擇範例”中選擇“_Total”,然後單擊“新增”按鈕,並單擊“關閉”按鈕返回。
在“資料取樣間隔”中設定時間間隔為“1分鐘”,再單擊“日誌檔案”選項卡(見圖4),在“日誌檔案型別”下拉框中選擇“文字檔案(逗號分隔)”,同時記住下面的“D:\PerfLogs\頁面檔案_000001.csv”,這是日誌檔案的儲存路徑和檔名。
單擊“確定”按鈕退出計數器設定,這時新增的計數器日誌會自動執行。在電腦中像平時一樣進行各種日常操作,並儘可能多地開啟和關閉各種常用的應用程式和遊戲,一般需要經過幾個小時使用後,才能通過計數器日誌得到比較全面的結果。
右擊“頁面檔案”計數器選擇“停止”,中止計數器日誌的執行。然後用記事本開啟“D:\PerfLogs\頁面檔案_000001.csv”檔案,檔案中每個時間段後面的數值表示當時頁面檔案的使用比率峰值,可以看出幾乎所有的記錄都顯示頁面檔案使用率的峰值不超過50%(見圖5),因此完全可以把頁面檔案的數值設定為當前值的50%,即256MB,這是一個比較合理的數值。而最大值則視情況而定,比如:你偶爾還會執行一些狂佔記憶體的軟體,那麼可將最大值設定為1GB或更多(視剩餘空間而定)。如果你平時的操作基本固定,那麼可考慮把頁面檔案的“初始大小”和“最大值”設定為同樣大小,這樣會減少磁碟碎片的產生。
這裡介紹的方法適合硬碟空間相對緊張,並希望經常瞭解系統狀況的使用者。虛擬記憶體各部分的常規配置方法,請參看本刊2004年第5期《虛擬記憶體到底應該怎麼設?》一文。
你知道嗎?
用Excel分析報告內容
通過一段時間監測,你收集了日誌檔案,檔案格式都是CSV,這種格式是專為電子表格設計的。我們可以利用Excel,把它做成餅圖或是曲線圖,直觀地瞭解不同時間內的頁面檔案變化。同樣方法,也可以監視記憶體等物件的變化趨勢。使用方法是在Excel中直接開啟CSV檔案,然後使用“插入→圖表→圖表嚮導”的命令進一步進行設計。
例項2:DIY一個記憶體不足報警器
前面介紹了通過“Available MBytes”計數器可以觀察系統可用記憶體不足的情況,當可用記憶體極低時,就會影響到系統性能。通過“警報”功能監視該計數器,當它的數值低於20MB時自動通過信使訊息發出警報提示,做到“防患於未然”。
新增警報計數器。右擊“警報”節點,選擇“新建警報設定”,輸入名稱“記憶體不足”,在開啟的對話方塊中單擊“常規”選項卡,單擊“新增”按鈕,按前面介紹的方法新增“Memory”物件中的“Available MBytes”計數器。
設定警報條件。在“將觸發警報,如果值是”後面的下拉框中選擇“低於”,後面輸入數值“20”,也就是當該計數器數值低於“20”時(即可用記憶體低於20MB)觸發警報條件。然後在“資料取樣間隔”中設定時間間隔為30秒(見圖6)。
單擊“操作”選項卡(見圖7),選中“傳送網路資訊到”選項,並在下面輸入你的計算機名(在新增計數器時可以看到你的計算機名)。當然,使用這種警報方式需要系統中沒有關閉信使服務。最後單擊“確定”按鈕儲存設定,新增的“警報”將會自動啟動執行。
現在就可以關閉效能管理工具,正常使用電腦了。當系統可用記憶體低於20MB時,你將會收到一個信使訊息提示,這時就需要退出部分程式,騰出記憶體或重啟系統,提前避免程式失去響應的情況。
小提示
★在“操作”選項卡中還可以選擇使用其他警報方式,例如寫入日誌、執行程式等。這裡有一個很特別的功能,可以啟動效能資料日誌,這樣可以實現與計數器日誌的聯動操作。
★系統性能監視器和警報在後臺執行時,也會佔用一定系統資源,我們可以使用一些技巧來儘量減少它的資源佔用。例如設定較長的資料取樣間隔、刪除不需要監視的計數器,另外要注意日誌檔案不要儲存到正在監視的磁碟中。
總的來說,系統性能管理工具非常強大,它常被系統維護專家用來發現和解決各種與系統相關的問題,特別是伺服器方面,前面我們只是介紹了一些它的皮毛,如果你對它感興趣,請參考相關專業圖書。[XT01]