Windows 自帶系統監控工具
http://www.cnblogs.com/luo-mao/p/5872374.html
一、 簡述
可以用於監視CPU使用率、記憶體使用率、硬碟讀寫速度、網路速度等。
Perfmon提供了圖表化的系統性能實時監視器、效能日誌和警報管理,系統的效能日誌可定義為二進位制檔案、文字檔案、SQLSERVER表記錄等方式,可以很方便地使用第三方工具進行效能分析。
perfmon.exe 檔案位於C:\Windows\System32目錄下。 使用方法:
1)開始 - 執行,輸入 perfmon 後回車,即可開啟perfmon.exe。
2)在 perfmon.exe 的左窗格中,單擊“系統監視器”(如果未選中)。
3)在右窗格中[單擊右鍵,然後單擊“新增計數器”。
4)在“效能物件”列]表中,選擇要在 PerfMon.exe 中顯示其圖形的計數器類別,單擊“新增”。
二、常用的效能指標
系統的整體效能由許多因素決定,例如CPU利用率、CPU佇列長度、磁碟空間和I/O、記憶體使用情況、網路流 量等等。對於實時性要求較高的系統而言,對系統關鍵性指標的有效監控和管理是保證系統高可用性的重要手段,因此,務必制定出明確的系統性能策略規劃,並對 這些效能指標進行有效的實時監控。當關鍵效能指標嚴重偏離或者系統發生故障時,應該採取有效手段來準確定位問題引發的原因,並通過調優系統配置或改進應用 程式等手段來有效提高系統的可用性。
(一)Perfmon的監控物件
Perfmon提供了比較全面的系統性能指標,並且能夠根據效能管理的要求訂製日誌內容、制定關鍵指標偏離時的警報措施。《表一》列出了Perfmon可以監控的效能物件,每一個性能物件項下包含多個性能指標計數器。
表一:效能物件描述 |
|
效能物件 |
提供的資訊 |
Browser |
Browser performance object 由衡量通知、列舉和其他瀏覽器傳輸率的計數器組成 |
Cache |
Cache performance object 包括監督檔案系統快取(實體記憶體上儘可能長時間的儲存最近使用過的資料以便訪問該資料時不需再從磁碟上讀取的那一部分記憶體。)的計數器。因為應用程式只使 用快取,因此該快取可作為應用程式 I/O 操作的指示器。當有足夠記憶體時,快取可增大,但當記憶體不足時,快取會變得太小而無法使用。 |
Distributed Transaction Coordinator |
Microsoft Distributed Transaction Coordinator 效能計數器 |
ICMP |
ICMP performance object 包括衡量用 ICMP 協議傳送和接收訊息的速度的計數器。它還包括監督 ICMP 協議錯誤的計數器。 |
IP |
IP performance object 包括衡量使用 IP 協議傳送和接收的 IP 資料報速度的計數器。它還包含監督 IP 協議錯誤計數器。 |
Job object |
由每個活動命名的作業物件收集的帳戶和處理器使用資料的報告。 |
Job object Detail |
Job object Detail 顯示有關作業物件中的活動處理的詳細的操作資訊。 |
Logical Disk |
Logical Disk performance object 包含監視一個硬碟或固定磁碟驅動器的邏輯分割槽的計數器。Performance Monitor 用邏輯磁碟的驅動器號(如: C)來識別邏輯磁碟。 |
Memory |
Memory performance object 由描述計算機上的物理和虛擬記憶體行為的計數器組成。實體記憶體指計算機上的隨機存取儲存器的數量。虛擬記憶體由實體記憶體和磁碟上的空間組成。許多記憶體計數器監 視頁面排程(指磁碟與實體記憶體之的程式碼和資料頁的移動)。過多的頁面排程(記憶體不足的一種表現)可引起拖延,會影響整個系統處理效率。 |
NBT Connection |
NBT Connection performance object 包括衡量用 NBT 連線在一臺本地計算機和一臺遠端計算機之間傳送和接收位元組的速率的計數器。該連線用遠端計算機的名稱來識別。 |
Network Interface |
Network Interface performance object 包括衡量通過一個 TCP/IP 網路連線傳送和接收位元組和資料包的速率的計數器。它包括監督連線錯誤的計數器。 |
Objects |
Object performance object 包含在系統中監督邏輯物件的計數器,如:處理、執行緒、多使用者終端執行程式和訊號量。這個資訊可以用於檢測計算機資源的不必要的消耗。每個物件需要記憶體以儲存有關物件的基本資訊。 |
Paging File |
Paging File performance object 包括監督在計算機上的分頁檔案的計數器。分頁檔案指為備份計算機上已用實體記憶體而保留的磁碟空間。 |
Physical Disk |
Physical Disk performance object 包含監視計算機上的硬碟或固定磁碟驅動器的計數器。磁碟用於儲存檔案、程式及分頁資料並且通過讀取檢索這些專案並通過記錄寫入對其進行更改。物理磁碟計數器的值為邏輯磁碟(由磁碟分成)值的總和。 |
Print Queue |
顯示一個列印列隊的操作統計。 |
Process |
Process performance object 包含監視執行中應用程式和系統處理的計數器。所有在一個處理中的執行緒均共享同一個地址空間並可以訪問同樣的資料。 |
Processor |
Processor performance object 包含衡量處理器活動方面的計數器。處理器是計算機進行算數和邏輯計算、在附屬件起始操作及執行處理執行緒的部分。一臺計算機可以有多臺處理器。處理器物件將每臺處理器作為物件的範例。 |
Processor performance |
處理器資訊 |
PSched Pipe |
資料包計劃程式中的管道統計數 |
RAS Port |
RAS Port performance object 包括監督計算機上的 RAS 裝置的每個遠端訪問服務埠的計數器。 |
RAS Total |
RAS Total performance object 包含將計算機上的遠端訪問服務(RAS)裝置的所有埠的值相加的計數器。 |
Redirector |
Redirector performance object 包括在本地計算機上監督網路連線的計數器。 |
RSVP |
RSVP 服務效能計數器。 |
System |
System performance object 包含應用於計算機上不止一個元件處理器範例的計數器。 |
TCP |
TCP performance object 包含衡量使用 TCP 協議傳送和接收 TCP Segment 速率的計數器變數。它包含監督在每個 TCP 連線狀態下的 TCP 連線數目的計數器變數。 |
Telephony |
電話服務系統 |
Terminal Services |
終端服務資訊。 |
Terminal Services Session |
每次終端服務會話資源監督。 |
Thread |
Thread performance object 包括衡量執行緒行為方面的計數器。一個執行緒是在一臺處理器上執行指令的基本物件。所有執行的處理至少有一個執行緒。 |
UDP |
UDP performance object 包含衡量使用 UDP 協議傳送和接收 UDP 資料報的速率的計數器。它包括監督 UDP 協議錯誤的計數器。 |
WMI Objects |
WMI 介面卡返回的 WMI 高效能提供程式 |
(二)常用的Perfmon監控物件與指標
以上列出的效能物件總共有上百個效能指標,我們關注一個系統的效能時,不可能關注這麼多指標,有些物件對實際的應用系統 影響並不大。但對一個Windows作業系統來說,CPU、Memmory、Disk和Network等關鍵物件是效能監控中必不可少的項。《表二》列舉 了最常用的效能物件的重要指標。
表二:常用的效能物件與指標 |
||
效能物件 |
計數器 |
提供的資訊 |
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對程序的監控指標
一般說來,伺服器上都佈署了一個或多個應用程式,這些應用程式在執行期間經常體現為若干個應用程序。為了便於監控應用程式的執行情況,在程式設計過程中一 般都會同時佈署應用系統的監控程式。Perfmon也設定了程序監控常用指標,這些指標比較直觀地體現了程序的執行狀況,是進行應用系統監控或應用系統跟 蹤調優的依據。《表三》列出了程序監控的主要指標。
表三:Process物件的主要指標 |
||
效能物件 |
計數器 |
提供的資訊 |
Process |
% Privileged Time |
% Privileged Time 是在特權模式下處理執行緒執行程式碼所花時間的百分比。當呼叫 Windows 系統服務時,此服務經常在特權模式執行,以便獲取對系統專有資料的訪問。在使用者模式執行的執行緒無法訪問這些資料。對系統的呼叫可以是直接的 (explicit)或間接的(implicit),例如頁面錯誤或間隔。 |
Process |
% Processor Time |
% Processor Time 是所有程序執行緒使用處理器執行指令所花的時間百分比。指令是計算機執行的基礎單位。執行緒是執行指令的物件,程序是程式執行時建立的物件。此計數包括處理某些硬體間隔和陷阱條件所執行的程式碼。 |
Process |
% User Time |
% User Time 指處理執行緒用於執行使用使用者模式的程式碼的時間的百分比。應用程式、環境分系統和集合分系統是以使用者模式執行的。Windows 的可執行程式、核心和裝置驅動程式不會被以使用者模式執行的程式碼損壞。 |
Process |
Creating Process ID value |
Creating Process ID value 指建立該程序的父程序號。 |
Process |
Elapsed Time |
該程序執行的總時間(用秒計算)。 |
Process |
Handle Count |
由這個處理現在開啟的控制代碼總數。這個數字等於這個處理中每個執行緒當前開啟的控制代碼的總數。 |
Process |
ID Process |
ID Process 指這個處理的特別的識別符。ID Process 號可重複使用,所以這些 ID Process 號只能在一個處理的壽命期內識別那個處理。 |
Process |
IO Data Bytes/sec |
處理從 I/O 操作讀取/寫入位元組的速度。這個計數器為所有由本處理產生的包括檔案、網路和裝置 I/O 的活動計數。 |
Process |
IO Data Operations/sec |
本處理進行讀取/寫入 I/O 操作的速率。這個計數器為所有由本處理產生的包括檔案、網路和裝置 I/O 的活動計數。 |
Process |
IO Other Bytes/sec |
處理給不包括資料的 I/O 操作(如控制操作)位元組的速率。這個計數器為所有由本處理產生的包括檔案、網路和裝置 I/O 的活動計數。 |
Process |
IO Other Operations/sec |
本處理進行非讀取/寫入 I/O 操作的速率。例如,控制性能。這個計數器為所有由本處理產生的包括檔案、網路和裝置 I/O 的活動計數。 |
Process |
IO Read Bytes/sec |
處理從 I/O 操作讀取位元組的速度。這個計數器為所有由本處理產生的包括檔案、網路和裝置 I/O 的活動計數。 |
Process |
IO Read Operations/sec |
本處理進行讀取 I/O 操作的速率。這個計數器為所有由本處理產生的包括檔案、網路和裝置 I/O 的活動計數。 |
Process |
IO Write Bytes/sec |
處理從 I/O 操作寫入位元組的速度。這個計數器為所有由本處理產生的包括檔案、網路和裝置。 |
Process |
IO Write Operations/sec |
本處理進行寫入 I/O 操作的速率。這個計數器為所有由本處理產生的包括檔案、網路和裝置 I/O 的活動計數。 |
Process |
Page Faults/sec |
Page Faults/sec 指在這個程序中執行執行緒造成的頁面錯誤出現的速度。當執行緒引用了不在主記憶體工作集中的虛擬記憶體頁即會出現 Page Fault。如果它在備用表中(即已經在主記憶體中)或另一個共享頁的處理正在使用它,就會引起無法從磁碟中獲取頁。 |
Process |
Page File Bytes |
Page File Bytes 指這個處理在 Paging file 中使用的最大位元組數。Paging File 用於儲存不包含在其他檔案中的由處理使用的記憶體頁。Paging File 由所有處理共享,並且 Paging File 空間不足會防止其他處理分配記憶體。 |
Process |
Page File Bytes Peak |
Page File Bytes Peak 指這個處理在 Paging files 中使用的最大數量的位元組。 |
Process |
Pool Nonpaged Bytes |
Pool Nonpaged Bytes 指在非分頁池中的位元組數,非分頁池是指系統記憶體(作業系統使用的實體記憶體)中可供物件(指那些在不處於使用時不可以寫入磁碟上而且只要分派過就必須保留在 實體記憶體中的物件)使用的一個區域。這個計數器僅顯示上一次觀察的值;而不是一個平均值。 |
Process |
Pool Paged Bytes |
Pool Paged Bytes 指在分頁池中的位元組數,分頁池是系統記憶體(作業系統使用的實體記憶體)中可供物件(在不處於使用時可以寫入磁碟的)使用的一個區域。這個計數器僅顯示上一次觀察的值;而不是一個平均值。 |
Process |
Priority Base |
這次處理的當前基本優先權。在一個處理中的執行緒可以根據處理的基本優先權提高或降低自己的基本優先權。 |
Process |
Private Bytes |
Private Bytes 指這個處理不能與其他處理共享的、已分配的當前位元組數。 |
Process |
Thread Count |
在這次處理中正在活動的執行緒數目。指令是在一臺處理器中基本的執行單位,執行緒是指執行指令的物件。每個執行處理至少有一個執行緒。 |
Process |
Virtual Bytes |
Virtual Bytes 指處理使用的虛擬地址空間的以位元組數顯示的當前大小。使用虛擬地址空間不一定是指對磁碟或主記憶體頁的相應的使用。虛擬空間是有限的,可能會限制處理載入資料庫的能力。 |
Process |
Virtual Bytes Peak |
Virtual Bytes Peak 指在任何時間內該處理使用的虛擬地址空間位元組的最大數。 |
Process |
Working Set |
Working Set 指這個處理的 Working Set 中的當前位元組數。Working Set 是在處理中被執行緒最近觸到的那個記憶體頁集。如果計算機上的可用記憶體處於閾值以上,即使頁不在使用中,也會留在一個處理的 Working Set中。當可用記憶體降到閾值以下,將從 Working Set 中刪除頁。如果需要頁時,它會在離開主記憶體前軟故障返回到 Working Set 中。 |
Process |
Working Set Peak |
Working Set Peak 指在任何時間這個在處理的 Working Set 的最大位元組數。 |
二、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命令指南。