Perfmon是啥?
Perfmon提供了圖表化的系統性能實時監視器、性能日志和警報管理,可以用於監視CPU使用率、內存使用率、硬盤讀寫速度、網絡速度等
性能分析方法
內存分析方法
內存分析用於判斷系統有無內存瓶頸,是否需要通過增加內存等手段提高系統性能表現。
主要方法和步驟:
1.首先查看Memory:%Committed Bytes in Use指標
如果該指標比例比較大,系統可能出現了內存方面的問題,需要繼續下面步驟進一步分析。另外也可以查看Available Bytes,如果該值小說明可用內存不足,存在性能瓶頸。
2.注意Pages/sec、Pages Read/sec和Page Faults/sec的值
操作系統會利用磁盤較好的方式提高系統可用內存量或者提高內存的使用效率。這三個指標直接反應了操作系統進行磁盤交換的頻度。
Pages/sec值持續高於幾百,可能有內存問題。Pages/sec值不一定大就表明有內存問題,可能是運行使用內存映射文件的程序所致。
Page Faults/sec說明每秒發生頁面失效次數,頁面失效次數越多,說明操作系統向內存讀取的次數越多。此時需要查看Page Read/sec的計數值,該計數器的閥值為5,如果計數值超過5,則可以判斷存在內存方面的問題。
處理器分析方法
1.首先看System:%Total Processor Time性能計數器的計數值
該計數器的值提現服務器整體處理器利用率,對多處理器的系統而言,該計數器提醒所有CPU的平均利用率。如果該值持續超過90%,則說明整個系統面臨着處理器方面的瓶頸,需要通過增加處理器來提高性能。
2.其次查看每個CPU的%User Time
%User Time是系統非核心操作消耗的CPU時間,如果該值較大,可以考慮是否能通過友好算法等方法降低這個值。如果該服務器是數據庫服務器,%User Time值大的原因很可能是數據庫的排序或是函數操作消耗了過多的CPU時間,此時可以考慮對數據庫系統進行優化。
3.研究系統處理器瓶頸
查看System:Processor Queue Length計數器的值,當該計數器的值大於CPU數量的總數+1時,說明產生了處理器阻塞。在處理器的%Process Time很高時,一般都隨處理器阻塞,但產生處理器阻塞時,Processor:%Processor Time計數器的值並不一定很大,此時就必須查找處理器阻塞的原因。
磁盤I/O分析方法
1.計算每磁盤的I/O數
每磁盤的I/O數可用來與磁盤的I/O能力進行對比,如果經過計算得到的每磁盤I/O數超過了磁盤標稱的I/O能力,則說明確實存在磁盤的性能瓶頸。
網絡分析法
Network Interface:Bytes Total/sec為發送和接收字節的速率,可以通過該計數器值來判斷網絡鏈接速度是否是瓶頸,具體操作方法是用該計數器的值和目前網絡的帶寬進行比較。
常用性能監控指標
Perfmon性能監控對象總共有上百個性能指標。對於一個Windows操作系統來說,CPU、Memmery、Disk和Network等關鍵對象是性能監控中必不可少的項。
常用的性能對象與指標(紅色優先重點關注) | ||
性能對象 | 計數器 | 提供的信息 |
Processor | %Idle Time | %Idle Time是處理器在采樣期間空閑的時間的百分比 |
%Processor Time | %Processor Time指處理器用來執行非閑置線程時間的百分比。(即CPU占用率)該計數器是處理器活動的主要說明器 | |
%User Time | %User Time指處理器處於用戶模式的時間百分比。用戶模式是為應用程序、環境分系統和整數分系統設計的有限處理模式。 | |
Memory | Available Bytes | Available Bytes顯示出當前空閑的物理內存總量。當這個數值變小時,Windows開始頻繁的調用磁盤頁面文件。如果這個數值很小時,例如小於5MB,系統會將大部分時間消耗在操作頁面文件上。 |
%Committed Bytes in Use | %Committed Bytes in Use是Committed Bytes與Commit Limit之間的比值。即內存使用百分比 | |
Page Faults/sec | Page Faults/sec是指處理器處理錯誤頁的綜合速率,用錯誤頁數/秒來計算。當處理器請求一個不在其工作集(在物理內存中的空間)內的代碼或數據時出現的頁錯誤。這個計數器包括硬錯誤(那些需要磁盤訪問的)和軟錯誤(在物理內存的其它地方找到的錯誤頁)。許多處理器可以在有大量軟錯誤的情況下繼續操作。但是,硬錯誤可以導致明顯的拖延。這個計數器顯示用上兩個實例中觀察到的值之間的差除以實例間隔的持續時間所得的值。 | |
Network Interface | Bytes Total/sec | Bytes Total/sec是發送和接收字節的速率,包括幀字符在內 |
Packets/sec | Packets/sec為發送和接收數據包的速率 | |
Physical Disk | %Busy Time | %Busy Time指磁盤驅動器忙於為讀或寫入請求提供服務所用的時間的百分比。如果只有%Disk Time比較大,硬盤有可能是瓶頸。 |
Avg. Disk Queue Length | Avg. Disk Queue Length指讀取和寫入請求(為所選磁盤在實例間隔中列隊的)的平均數 | |
Current Disk Queue Length | Current Disk Queue Length指在收集操作數據時在磁盤上未完成的請求的數目。它包括在快照內存時正在為其提供服務中的請求。這是一個即時長度而非一定間隔時間的平均值。多主軸磁盤設備可以一次有多個請求操作,但是其它同時發生的請求為等候服務。這個計數器可能會反映一個暫時的高或低的隊列長度,但是如果在磁盤驅動器存在持續負載,可能值會總是很高。請求等待時間與這個隊列的長度減去磁盤上的主軸成正比。這個差值應小於2才能保持良好的性能。 |