http://blog.51cto.com/2681882/2315478
1 Perfmon簡介
Perfmon(Performance Monitor)是一款Windows自帶的性能監控工具,提供了圖表化的系統性能實時監視器、性能日志和警報管理。通過添加性能計數器(Performance Counter)可以實現對CPU、內存、網絡、磁盤、進程等多類對象的上百個指標的監控。其中,性能日志可定義輸出格式為二進制文件、文本文件、SQLSERVER記錄等,以方便后續使用第三方工具進行分析。
2 Perfmon使用
Perfmon支持選擇性的監控感興趣的性能計數器,指標范圍廣、粒度細,而且支持將監控數據持久化。當然,如果只是關注性能主要指標(cpu、mem、io、net),也可以直接查看資源管理器(Resmon.exe)。本文主要介紹使用Perfmon進行性能監控的通用方法,更細節的內容請參考其他文檔,如,微軟官方文檔或Perfmon幫助文檔:
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc749249(v=ws.11)
2.1 Perfmon使用方法
Perfmon是windows自帶工具,無需安裝,鍵入命令即可打開工具,具體步驟如下:
1、開始-->搜索程序和文件,輸入perfmon,回車后即可打開工具;
2、雙擊左側導航欄的【性能監視器】,然后在右窗格中單擊鼠標右鍵或”+”,選擇“添加計數器”,如圖:

3、在”性能對象”列表,選擇需要監控的計數器,添加后即可進行實時監控,如圖所示是選擇監控cpu的計數器:

監控計數器添加完成后,可以查看到圖形實時變化,如上圖,計數器%Processor Time表示cpu的利用率,從圖中可以看到最新值、平均值、最小和最大值,以及監控持續時間,其中,這里的持續時間是指當前配置顯示在圖表中的時間跨度,並不是已經監控的時間,該配置可以右鍵點擊圖標->屬性->常規->持續時間中配置。另外,監控圖上右鍵點擊,可以對計算器進行操作,如添加、刪除、隱藏、保存、更改屬性等操作。
2.2 Perfmon監控對象和指標
通過上節描述,已經可以使用Perfmon進行實時監控了,可能仍然會對描述中的性能對象和性能計數器感到疑惑。通俗的講,性能對象就是你要直接監控的資源對象,如cpu,mem等,而衡量這些對象的性能需要一些指標,就是性能計數器。Perfmon支持監控多種性能對象,每個對象又提供了比較全面的性能計數器。性能對象、常用性能對象及計數器,如下表所示:
表1 性能對象描述
上表中的性能對象有多達數百個性能指標,如果安裝有.NET框架,還會看到更多的.NET開頭的對象。我們關注系統或應用的性能時,不可能、也不必要關注這么多指標,只需根據實際情況選取必要指標即可。一般而言,對於Windows系統或運行其上的應用來說,CPU、 Memory、Disk、Network等關鍵對象是必不可少的。
表2 常用性能對象和計數器
2.3 使用計數器日志
在2.1節中介紹了Perfmon性能監視器的使用方法,該功能主要用於對指定的性能指標進行實時監控(類似nmon的交互模式),但它不能把監控的數據保存下來。如果需要持續對系統的指定性能指標進行監控,就需要使用Perfmon的計數器日志功能(類比nmon的后台監控模式),計數器日志可以把監控數據以指定的方式進行保存,同時也方便后續用第三方工具進行分析。
接下來,以監控CPU\MEM為例介紹Perfmon計數器日志的使用方法。
1、在Perfmon右側導航窗格中,展開“數據收集器集”,右鍵單擊“用戶定義”,指向“新建”,然后單擊“數據收集器集”,將啟動“創建新數據收集器集”向導;

2、填入收集器名稱,選擇”手動創建(高級)”,點擊下一步進入選擇數據類型向導,如圖:

3、選擇“性能計數器”,點擊下一步,進入性能計數器選擇界面,通過點擊”添加”按鈕添加CPU\MEM的性能計數器,同時,可以根據采集時長自定義采樣間隔,默認是15s,如圖:

4、如果需要自定義日志的保存位置,可以點擊”下一步”,否則可以直接點擊“完成”,結束配置。
5、另外,可以右鍵單擊采集器集名稱,選擇屬性,配置監控任務的啟停條件,如,配置定時任務或退出條件等,如圖為配置采集30s后停止:

6、如需對監控的性能指標、日志格式、采樣時間等進行調整,可以右鍵單擊數據收集任務,選擇屬性,編輯即可,可以增刪計數器、修改日志格式(默認二進制的.blg)、修改采樣間隔等,如圖:

7、最后,點擊工具欄
啟動數據收集器即可;
8、結果收集完成后,可以在右側導航欄選擇”報告”,展開“用戶自定義”,查看報告;也可以通過“性能監視器”的“查看日志數據”選擇要加載顯示的日志文件。
3 Perfmon性能分析方法
本節主要介紹使用Perfmon對CPU、MEM、磁盤I\O、NET進行監控和性能分析的通用思路和方法。
1、CPU分析方法
根據2.2節的介紹,CPU監控涉及的主要性能計數器是% Processor Time、% User Time、System:Processor Queue Length。其中,% Processor Time性能計數器的數值展示了服務器CPU的使用情況,如果該值持續超過90%,則說明整個系統面臨着CPU瓶頸,需要通過增加CPU來提高性能;%User Time性能計數器的數值展示了用戶空間進程的CPU利用率,如果該值較大,需要分析是哪個用戶進程、執行的何種操作引起了CPU升高; System:Processor Queue Length計數器的數值展示了CPU等待處理的隊列長度,當該計數器的值 > (CPU數量的總數+1)時,說明出現處理器阻塞。一般情況下,Processor:%Process Time很高時,都會伴隨着處理器阻塞,但產生處理器阻塞時,Processor:%Process Time 計數器的值並不一定很高,此時就需要分析產生處理器阻塞的原因。
2、MEM分析方法
MEM監控涉及的性能計數器主要是% Commitued Bytes in Use、Available Bytes,如果% Commitued Bytes in Use計數器顯示的數值比較大,則系統可能存在內存瓶頸,可以根據Available Bytes計數器的數值進一步判斷,如果該值小,說明可用內存不足,存在性能瓶頸;另外,需要注意Pages/sec、Pages Read/sec和Page Faults/sec的數值,這些指標反映了操作系統進行磁盤交換的頻率。如果Pages/sec的數值持續較高(如幾百的數值),可能存在內存瓶頸,但不排除可能是程序使用內存映射文件所致;如果Page Faults/sec的數值較高,說明頁面失效頻率較高,操作系統向內存讀取的次數較多;通常,Pages Read/sec計數器的數值,一般不要超過5,否則很可能存在內存瓶頸。
3、磁盤IO分析方法
磁盤I/O監控涉及的性能計數器主要是 % Busy Time、Avg. Disk Queue Length、Current Disk Queue Length,若% Busy Time性能計數器的數值比較大,則硬盤可能存在瓶頸。另外,對於順序讀寫的應用,需要計算IOPS,如果實際得到的IOPS等於或超過了磁盤標稱的IO能力,則該磁盤存在性能瓶頸。
4、NET分析方法
NET監控涉及的性能計數器主要是Bytes Total/sec,通過該計數器值與網絡帶寬數值進行比較,可以判斷網絡鏈接速度是否存在瓶頸。
- 原文鏈接:https://kuaibao.qq.com/s/20181111G0NWO800?refer=cp_1026