一.簡述
筆者在用lr中control監控Windows資源的時候,有時候總是遇到卡死和報錯,所以就發現了Windows自帶的監控神器————perfmon。
Perfmon提供了圖表化的系統性能實時監視器、性能日志和警報管理,系統的性能日志可定義為二進制文件、文本文件、SQLSERVER表記錄等方式,可以很方便地使用第三方工具進行性能分析。
perfmon.exe 文件位於C:\Windows\System32目錄下。
使用方法:
1)開始 - 運行,輸入 perfmon 后回車,即可打開perfmon.exe。
2)在 perfmon.exe 的左窗格中,單擊“系統監視器”(如果未選中)。
3)在右窗格中單擊右鍵或者“+”,然后單擊“添加計數器”。
4)在“性能對象”列表中,選擇要在 PerfMon.exe 中顯示其圖形的計數器類別,單擊“添加”。
二.常用的性能指標
系統的整體性能由許多因素決定,例如CPU利用率、CPU隊列長度、磁盤空間和I/O、內存使用情況、網絡流量等等。對於實時性要求較高的系統而言,對系統關鍵性指標的有效監控和管理是保證系統高可用性的重要手段,因此,務必制定出明確的系統性能策略規划,並對這些性能指標進行有效的實時監控。當關鍵性能指標嚴重偏離或者系統發生故障時,應該采取有效手段來准確定位問題引發的原因,並通過調優系統配置或改進應用程序等手段來有效提高系統的可用性。
| 表二:常用的性能對象與指標 |
||
| 性能對象 |
計數器 |
提供的信息 |
| Processor |
% Idle Time |
% Idle Time 是處理器在采樣期間空閑的時間的百分比 |
| Processor |
% Processor Time |
% Processor Time 指處理器用來執行非閑置線程時間的百分比。計算方法是,測量范例間隔內非閑置線程活動的時間,用范例間隔減去該值。這個計數器是處理器活動的主要說明器,顯示在范例間隔時所觀察的繁忙時間平均百分比。 |
| Processor |
% User Time |
% User Time 指處理器處於用戶模式的時間百分比。用戶模式是為應用程序、環境分系統和整數分系統設計的有限處理模式。 |
| Memory |
Available Bytes |
Available Bytes顯示出當前空閑的物理內存總量。當這個數值變小時,Windows開始頻繁地調用磁盤頁面文件。如果這個數值很小,例如小於5 MB,系統會將大部分時間消耗在操作頁面文件上。 |
| Memory |
% Committed Bytes in Use |
% Committed Bytes In Use 是 Memory: Committed Bytes 與Memory: Commit Limit之間的比值。(Committed memory指如果需要寫入磁盤時已在分頁文件中保留空間的處於使用中的物理內存。Commit Limit是由分頁文件的大小而決定的。如果擴大了分頁文件,該比例就會減小)。這個計數器只顯示當前百分比;而不是一個平均值。 |
| Memory |
Page Faults/sec |
Page Faults/sec是指處理器處理錯誤頁的綜合速率。用錯誤頁數/秒來計算。當處理器請求一個不在其工作集(在物理內存中的空間)內的代碼或數據時出現的頁錯誤。這個計數器包括硬錯誤(那些需要磁盤訪問的)和軟錯誤(在物理內存的其它地方找到的錯誤頁)。許多處理器可以在有大量軟錯誤的情況下繼續操作。但是,硬錯誤可以導致明顯的拖延。這個計數器顯示用上兩個實例中觀察到的值之間的差除以實例間隔的持續時間所得的值。 |
| Network Interface |
Bytes Total/sec |
Bytes Total/sec是發送和接收字節的速率,包括幀字符在內。 |
| Network Interface |
Packets/sec |
Packets/sec為發送和接收數據包的速率。 |
| Physical Disk |
% Busy Time |
% Busy Time指磁盤驅動器忙於為讀或寫入請求提供服務所用的時間的百分比。 |
| Physical Disk |
Avg. Disk Queue Length |
Avg. Disk Queue Length 指讀取和寫入請求(為所選磁盤在實例間隔中列隊的)的平均數。 |
| Physical Disk |
Current Disk Queue Length |
Current Disk Queue Length指在收集操作數據時在磁盤上未完成的請求的數目。它包括在快照內存時正在為其提供服務中的請求。這是一個即時長度而非一定間隔時間的平均值。多主軸磁盤設備可以一次有多個請求操作,但是其它同時發生的請求為等候服務。這個計數器可能會反映一個暫時的高或低的列隊長度,但是如果在磁盤驅動器存在持續負載,可能值會總是很高。請求等待時間與這個列隊的長度減去磁盤上的主軸成正比。這個差值應小於2才能保持良好的性能。 |
| Logical Disk |
% Free Space |
% Free Space 是所選定的邏輯磁盤驅動器上總的可用空閑空間的百分比。 |
| Logical Disk |
Free Megabytes |
可用的 MB 顯示磁盤驅動器上尚未分配的空間。 |
三、Perfmon功能之一——性能監視器
在Windows中,性能監視器以一個管理控制台(MMC)單元的形式實現。在windows的開始->運行框中輸入perfmon.msc啟動Windows的性能監視器,可以看到類似圖一的界面。性能監視器主要用來對指定的系統性能指標進行實時監控,但這些性能的指標記錄不能被保存。如果要保存這些性能日志,可以用后面介紹的“計數器日志”功能。性能監視器的另外一個功能是對計數器日志生成的日志記錄進行非實時的圖表化展現。在性能監視器中楞以通過“查看當前活動”或“當看日志數據”功能項來指定監控的性能指標項目。一般說來,由於性能監視器的顯示窗口大小有限,不宜指定太多的實時監控項目,否則窗口中的顯示很難突出需要重點監控的項目。我們可以根據不同的監控目標制訂不同的實時監控方案,每一個方案均可以保存為一個MSManagement Console(msc)文件。
四、Perfmon功能之二——計數器日志
前面介紹了系統監視器的功能時提到,系統監視器主要用於重要性能指標的實時監控,它不能保存被監控的性能指標歷史數據。如果需要持續對系統的性能指標采樣,就必須用到Peofmon的計數器日志的功能。計數器日志在日志文件中記錄指定的系統性能數據,這些日志數據可以用系統監視器查看或用其他工具處理,這對於分析系統某一段時間內的運行狀況或者是交由第三方性能管理工具來進行性能管理十分有用。
為了說明如何使用計數器日志,我們要新建一個日志會話。擴展控制台中的“性能日志和警報”節點下可以看到“計數器日志”分節點,右擊“計數器日志”分節點,選擇“新建日志設置”,指定日志設置的名稱,點擊“確定”,出現圖二的對話框,在這里設定要在日志中記錄的計數器(即需要記錄的性能指標)。點擊“添加對象”按鈕,將某個監視對象的所有計數器加入日志記錄,或者點擊“添加計數器”按鈕加入單個計數器。日志文件的默認保存路徑是C:\perflogs目錄,在設置時可以根據需要在“日志文件”項下修改。日志文件保存的格式可以根據需要設定成文本文件、二進制文件、SQL數據庫記錄。在“計划”項下,可以設置性能日志的啟動和關閉時間計划,也可以設置日志關閉后的指定動作。我們可以根據不同的監控需求制訂不同的性能日志方案,每一個方案均可以保存為一個HTML文件。
五、Perfmon功能之三——跟蹤日志
Perfmon的跟蹤日志功能可以提供對某些重要系統事件的跟蹤,也可以指定對特定應用程序的跟蹤。跟蹤日志以二進制文件保存(默認擴展名為.etl),可以用tracerpt對日志進行分析,並生成CSV格式的dump文件。該功能目前沒有提供直觀的配置手段來訂制對特定應用程序的跟蹤,必須通過編輯系統的注冊表來實現。這一功能主要應用在程序調試、故障分析過程中。圖三是訂制跟蹤日志的對話框,在其“日志文件”、“計划”項下可以設置日志文件的存放路徑、文件大小限制、日志啟停計划等項目。
六、Perfmon功能之四——警報
Perfmon的警報功能是指當某個計數器的性能數據達到指定的值時,執行一定的動作,例如發送Email、用NetSend命令發送消息或者運行指定的程序。也可以指定當警報發生時將警報當作系統的事件記錄在系統事件記錄里,這樣可以很方便地用事件查看器來調閱警報的內容。警報的報警指標設置與性能計數器的指標相同,針對不同的應用,我們可以制訂不同的警報策略。圖四示例的是當CPU的IdleTime低於70%時觸發一個警報的訂制對話框。在“操作”和|“計划”項下,可以配置警報發生時的指定操作、警報設置的啟停動作等。
七、Perfmon布署方法
對Windows系統的性能監控需要有較高的用戶權限,Perfmon默認的可執行權限是管理員用戶,從系統安全性考慮,不建議將管理員作為日常監控的用戶。Windows2000 Server提供了性能管理用戶組,在實施系統的性能監控時,可建立一個該組的普通用戶。
Windows提供了Perfmon的兩種布署方式:本地監控和遠程監控。本地監控產生的日志文件默認保存路徑是C:\perflogs目錄,在設置時可以根據需要在“日志文件”項下修改。本地監控產生的日志文件除了可以在本機用性能監視器進行觀測外,還可以外傳到第三方監測分析平台上。遠挰監控可以實現對局域網內多台監控目標進行集中采樣監控,其前提是監控主機與目標主機之間必須建立信任關系,並且打開相應的遠程訪問控制。在訪問控制比較嚴格的環境下,遠程監控難以布署。布署Permon時還應該考慮志文件的存放問題,如果要長時間收集性能數據,最好調整一下采樣間隔時間,如果采樣間隔時間設置得太小,日志文件會快速增。
Perfmon的管理也有兩種方法:控制台管理和命令行方式管理。可以通過運行Perfmon.msc調出性能管理的控制台,並根據監控策略制訂、管理控制台。Perfmon的另一種管理方式是命令行方式,Windows提供了一個專門用於管理性能監控的命令――Logman,它不僅能夠在命令行上啟動和停止日志會話,而且能夠從命令行創建新的日志會話。有關Logman命令的用法可參閱Logman命令指南。
還有另外一個命令能方便地采集到系統性能數據,但僅僅是獲取數據,並不產生警報和日志記錄的動作。這種方式在使用第三方軟件來監控Windows系統的性能時經常用到。Windows提供了一個顯示當前性能指標的命令----Typeperf。用Typeperf可以得到前面提到的Perfmon的所有指標值。Typeperf的標准輸出是屏幕顯示,我們可以通過輸出重定義將結果輸出到文本文件當中,並將結果文件傳給第三方系統。這種應用方式下,Typeperf的動作由第三方軟件根據需要來管理,也可以通過訂制計划任務來定時啟動。有關Typeperf命令的用法可參閱Typeperf命令指南
