使用 PerfMon 和資料收集器集進行本機遙測 它是 Windows 系統中鮮為人知的瑰寶之一,幾乎無人充分利用,但當您需要診斷伺服器和應用程式中的瓶頸、效能下降或間歇性錯誤時,它卻能發揮至關重要的作用。 PerfMon(效能監視器)是 Windows 的標準元件,無需額外許可證,如果配置得當,它可以讓您清楚地了解基礎架構的運作狀況。
雖然很多人使用 PerfMon 只是為了快速查看 CPU 或記憶體的使用情況, 真正的潛力在於將其與數據採集器集結合使用。事件追蹤和工具,例如 Logman、資源監視器或與第三方控制台(例如 SANsymphony 或其他解決方案)的集成 存儲 例如 DataCore)。透過精心規劃的本地遙測策略,您可以記錄數天或數週的數據,並自動輪換使用。 日誌產生報告,並擁有充足的資源來解決複雜問題。
PerfMon是什麼?為什麼它對本地遙測至關重要?

效能監視器(Perfmon 或 perfmon.msc) 它是經典的 Windows 圖形控制台,用於檢視和記錄系統及應用程式的效能計數器。它允許您觀察 CPU、記憶體、磁碟、網路、特定服務以及 SQL Server 等軟體的即時或延遲指標,並將這些資料公開給其他監控工具。
從實務層面來看, PerfMon 的組織結構圍繞著物件、計數器和實例。物件代表元件(處理器、記憶體、實體磁碟、SQL Server 等),計數器是具體的指標(處理器時間百分比、平均磁碟秒/傳輸、頁/秒等),實例區分物件內的元素(例如,每個實體磁碟或每個資料庫)。
一個非常強大的優勢是: PerfMon 可以對本地團隊和遠端團隊都有效。前提是您擁有對應的權限。這使其成為管理生產環境中 Windows Server 環境的理想工具,包括 SQL Server、列印服務、Web 應用程式、儲存等關鍵角色。
PerfMon 記錄的數據 它們可以匯出為 CSV、BLG 或 TSV 等標準格式。因此,與其他團隊交換資料、自動分析或保存歷史資料以供審計和比較都非常容易。
雖然也可以用純粹的視覺化方式(使用典型的折線圖)使用 PerfMon, 它的真正優勢在於使用資料採集器進行連續記錄。這些系統允許對遙測資料進行可控採集。 El Temppo具有可設定的採樣間隔、持續時間和大小限制、警報和自動報告產生功能。
相關工具:資源監控器、監控工具與報告

在 Windows 效能控制台中, 經典圖形模式下不僅僅有效能監視器但它實際上是一套互補的工具,旨在幫助您進行日常診斷:資源監控器、監控工具和報告。每個工具涵蓋的詳細程度各不相同。
資源監視器 這是用於查看伺服器目前運行狀況的「概覽視圖」。它分為幾個選項卡:概覽、CPU、磁碟、網路和記憶體。每個選項卡都將進程/服務表格與即時圖表結合。如果您在 CPU 下選擇一個或多個進程, 此選擇將作為其餘部分的篩選條件。這有助於隔離哪些進程觸發了 I/O、網路或 RAM 消耗。
例如,“磁碟”選項卡顯示: 按流程統計閱讀量、寫作量和總數。第二部分詳細列出了每個開啟的文件。在「網路」部分,您可以查看具有網路活動的進程、TCP 連線和監聽連接埠。這非常有助於確定速度緩慢是由特定流程還是系統整體模式引起的。
在部分 監控工具 您可以使用「經典」效能監視器,它提供多種視圖:折線圖(典型的折線視圖)、直方圖(長條直方圖)和報表(報表模式)。它還包含一個摘要區域,顯示所選計數器的最新值、平均值、最大值、最小值和採樣持續時間,這對於無需匯出資料即可檢測趨勢非常有用。
PerfMon 的設定以標籤頁的形式組織: 概述、來源、數據、圖表和外觀在「一般」設定中,您可以顯示或隱藏圖例、數值列或工具列;在「來源」設定中,您可以決定是否顯示目前活動、載入資料日誌或從效能資料庫讀取數據,以及調整要顯示的時間範圍。

計數器在「資料」標籤中新增或刪除, 顏色、比例、粗細和線條樣式均可自訂「圖表」標籤可讓您調整圖表類型、座標軸、縱軸的最小值和最大值,以及橫軸顯示的時間。在“外觀”標籤中,您可以變更顯示器顏色和字體。
的部分 分析報告 它使您可以存取由資料收集器集產生的報告。您可以按類型(系統、使用者、追蹤事件)查看報告,並瀏覽聚合指標。雖然它不是像 BI 工具那樣的高階報表系統, PerfMon 報告對於初步診斷非常有用。 並記錄伺服器在給定時間段內的行為。
資料收集器集:PerfMon 遙測的核心
很多 數據採集器集 這些是計數器、追蹤和配置的集合,用於定義要擷取哪些遙測資料、擷取頻率、擷取長度以及儲存位置。 Windows 將它們組織成使用者事件收集器、系統事件收集器和追蹤事件收集器。
在詳細討論之前,區分以下內容很重要: 性能計數器 以及事件追蹤數據。前者與系統計時器相關聯,非常適合進階診斷(CPU、記憶體、磁碟、網路等)。後者收集來自應用程式或作業系統本身的更詳細的事件,對於定位軟體錯誤和問題非常有用。 硬件 或資源過度利用,並進行探索 詳細系統數據.
用戶收集器可以包含多種類型的資料: 性能計數器 (經典性能計數器) 事件追蹤數據 (追蹤事件) 系統配置資訊 (配置和註冊資訊) 性能計數器警報 (當計數器超過閾值時觸發的警報)。這些警報可以記錄在事件檢視器中,甚至可以觸發自動化任務。
在實踐中,當使用本地遙測資料進行診斷時,通常會創建 資料收集器自訂集,類型為效能計數器這些計數器由使用者自定義,旨在長期記錄資料。然而,在進階環境中,將計數器與事件追蹤資料結合使用,對於減少偵錯複雜錯誤所花費的時間非常有意義。
在控制台中,資料擷取器集被分為以下幾類: 使用者自訂系統或追蹤事件。在「報表」視圖中,擷取完成後,您將看到這些資料集的結果,其中會區分預先定義的系統物件和管理員建立的物件。
如何使用 PerfMon 建立自訂資料收集器集
手動建立資料採集器集的過程可以讓你對要測量的內容進行非常精細的控制。 控制台中的典型路徑是從使用者定義開始。 從頭開始創建新的一套,避免使用模板,因為您想要的是完全符合您需求的客製化內容。
概念步驟很簡單: 您可以定義名稱和資料類型,新增計數器,並配置採樣間隔。您可以選擇輸出資料夾,並設定憑證、安全性設定和排程任務。然後,您可以設定停止條件(按時間或日誌大小)和自動重新啟動規則。
典型的工作流程如下:將滑鼠懸停在“使用者定義”上,選擇“新資料收集器集”,為其命名,然後選擇“手動建立(進階)”。如果您選擇“從範本建立”,則會匯入包含預先定義計數器的 XML 文件,但這種方法有一個明顯的缺點: XML 檔案取決於作業系統版本和服務包。因此,如果它們不能完全匹配,往往會失敗。
選擇進階模式後,您可以選擇是否建立日誌檔案以供後續分析。 性能計數器下一個畫面會提示您使用「新增」按鈕新增計數器。在同一視窗中,您可以配置採樣間隔和單位,這兩個參數至關重要,可以避免產生不必要的兆位元組資料或丟失極短暫峰值中的細節。
點擊「新增」後,您需要選擇電腦(本機或遠端)、計數器物件以及要包含的實例。如果您選取“顯示描述”, PerfMon 會顯示每個計數器的簡要說明。這樣有助於避免選擇錯誤。重複此操作,直到您獲得所需的計數器數量,然後按一下「確定」關閉。接下來,選擇日誌檔案的儲存路徑,並完成精靈。
完成後,您可以開啟新建的資料收集器集的屬性。在主選項卡上, 您配置使用者帳戶(運行身分) 這將運行收集器,該收集器必須具有相應的權限。 「目錄」標籤可讓您調整子目錄和命名模式(子目錄和子目錄名稱格式),這在您想要按日期或時間區分擷取內容時非常有用。
「安全性」標籤定義資料收集器集的存取權限,「計畫」標籤可讓您安排其自動啟動。最後,「停止條件」標籤設定終止條件:總持續時間,以及(如果您選擇的話) 當達到特定時間或大小限制時自動重啟 (重新啟動資料收集器,設定限制,最大值以 MB 為單位)。
設定定期擷取:工作時間內遙測範例
一個非常常見的情況是應用程式故障 隨機出現超時或運轉緩慢的情況 當天需要持續擷取遙測資料。您無法預知問題何時會再次出現,因此需要在生產時間內不斷收集遙測數據,並輪換檔案以避免磁碟佔用過多空間。
想像一下,一台執行 Windows Server 2012 的伺服器(也適用於其他版本)在使用 YSoft SafeQ 等解決方案時遇到驗證錯誤。您知道故障發生在上午 8 點到晚上 8 點之間,但不知道具體時間,也不想保留整整一個月的日誌。 目標是每小時記錄一次數據,並保持遙測數據幾天。限制最大空間(例如 10 GB),並提供可供查看的圖形報告。
在 PerfMon 中,您可以從「系統效能」範本開始建立資料收集器集,該範本會添加一些建議的計數器。然後,您可以調整配置:在集屬性的「停止條件」標籤中, 您設定的總時長為 60 分鐘 這樣每次執行都會產生一個一小時的檔案。在“資料管理器”中,取消選取“最大資料夾數”,將資源策略設為“刪除最舊的”,並選取“最大”。 根 將「路徑大小」設定為例如 10000 MB,以便在達到限制時自動刪除舊檔案。
下一步是對資料採集器集進行程式設計。 任務調度程序(taskschd.msc)導覽至“任務計劃程序庫”>“Microsoft”>“Windows”>“PLA”,找到與資料收集器集同名的任務,並調整其計劃:每日觸發,從 8:00 開始,每小時重複一次,持續 12 小時。在「設定」標籤上,選擇「將新實例加入佇列」(如果需要),並檢查配置。 自動重啟.
最好測試一下任務是否正常運行:右鍵單擊任務,選擇“運行”,然後確認狀態變為“正在運行”。等待幾分鐘,檢查任務是否仍在執行。然後使用“結束”命令停止任務,並確保狀態返回“就緒”。之後, 報告將自動顯示在「報告」>「使用者自訂」部分。,名稱為“資料收集器集”,名稱中包含每次擷取的開始時間。
從這些報告中可以看出「 摘要“和”診斷結果如需概覽,或需要更多詳細信息,請開啟特定類別(例如,「磁碟」>「實體磁碟」>「平均磁碟傳輸時間(秒/次)」)。您還可以切換到“效能監視器”視圖,放大圖表並分析問題發生的確切時刻。
在沒有圖形介面的環境中使用 Logman
在 Windows Server 2016 Core、Nano Server 或最小安裝版本上, 您沒有完整的效能監視器圖形使用者介面。但這並不代表你應該放棄遙測功能。針對這種情況,微軟提供了 Logman,一個命令列工具。 命令 (可從 CMD o PowerShell的) 建立、設定和管理資料收集器集。
使用 Logman,您可以 建立類型為效能計數器、事件追蹤資料或系統配置資訊的資料收集器它還允許您定義警報資料收集器集。此外,它還允許您啟動、停止和刪除資料集,配置採樣間隔、持續時間、日誌路徑和重複選項。
一個典型的例子:你想測量 處理器時間佔總處理器時間的百分比 每小時運行一次,持續 30 天,檔案自動重置,日誌保存到 C:\perflogs 目錄。您可以執行類似這樣的命令:
logman create counter CPUCounter -c «\Processor(_Total)\% Processor Time» -rf 720:00:00 -r -si 01:00:00 -o «c:\perflogs\daily_log»
在這個命令中 建立計數器表示您正在建立計數器收集器-c 選項指定特定的計數器,-rf 設定總持續時間(本例為 720 小時,即 30 天),-r 表示重複執行此資料集,-si 將採樣間隔設定為 1 小時。 -o 選項定義輸出檔案的路徑和基本名稱。
使用 Logman 建立資料收集器集後, 記住要明確地開始。否則,它將無法開始捕獲。您也可以使用 Logman(logman start CPUCounter)執行此操作,或者,如果您有圖形使用者介面,則可以透過效能監視器控制台執行此操作。請記住,如果您剛剛刪除了一個收集器,Windows 可能需要一些時間來處理變更;如果出現錯誤,請稍等幾分鐘或刷新頁面後重試。
Microsoft微軟 官方文件 Logman 的官方文件詳細介紹了其所有進階選項(包括範本、匯出和匯入配置以及跨版本相容性),當您想要設定大規模腳本遙測解決方案時,應該查看這些文件。
與第三方工具和 Windows PerfMon 集成
許多儲存和虛擬化平台,例如 DataCore SAN交響樂它們透過 Windows 效能監視器 (PerfMon) 公開效能計數器。這是透過一個整合層實現的,該整合層允許在 PerfMon 中查看、記錄和分析軟體的特定指標,就像查看系統原生計數器一樣。
例如,DataCore 就有一個單獨的控制台,名為 DataCore 效能監視器配置該控制台在 DataCore 伺服器本地運行,簡化了 SANsymphony 效能相關計數器和實例的選擇,免去了您在浩瀚的作業系統計數器清單中搜尋的麻煩。
流程如下:從控制台選擇 SANsymphony 的類別、實例和計數器,並將它們新增至清單。 “目前匯出到 PerfMon 的計數器” 然後,您可以根據這些特定的計數器建立資料收集器集。一個名為 Windows 的服務 DataCore Perfmon Agent (DcsPerfMonAgent) 它負責收集數據並將其發送到 PerfMon。如果該服務不在服務區內。 開機 自動啟動,控制臺本身可以啟動它,但建議將其啟動類型變更為自動,使其持久運行。
在DataCore控制台的「資料收集器」面板中,您可以 建立、修改和刪除集合集您可以為資料收集器集命名,選擇包含的計數器,然後儲存。您也可以編輯現有的資料收集器集,根據需要新增或刪除計數器,或在不再需要時刪除整個收集器集。
與 Windows 效能監視器整合具有雙重優勢: 效能控制臺本身和效能控制台都可以獲得該資料。 (您可以在其中查看圖表、報告和日誌),以及讀取 Windows 計數器的第三方應用程式(集中式監控系統、容量規劃工具等)。這樣,您的本地遙測資料就不會被孤立,而是整合到組織的整體可觀測性策略中。
CPU、記憶體、磁碟和 SQL Server 的關鍵計數器
在定義資料收集器集時,這一點至關重要。 選擇合適的櫃檯關鍵不在於隨意添加數百個指標,而在於選擇那些能夠為你提供有關係統和應用程式狀態的有意義的資訊的指標。
對於 CPU 而言,PerfMon 中最常使用的計數器是 處理器時間百分比、空閒時間百分比、特權時間百分比和使用者時間百分比第一個指標反映處理器執行程式執行緒(一般活動)所花費的時間百分比,而空閒時間百分比則表示空閒時間(通常在伺服器系統的高峰時段較低)。特權時間百分比顯示處理器執行核心/作業系統程式碼所花費的時間,而使用者時間百分比則顯示處理器執行使用者進程(SQL Server、防毒軟體、應用程式等)所花費的時間。處理器時間百分比和特權時間百分比的過高組合可能表示存在問題。 驅動程序I/O 或內核。
在記憶體中,有兩個非常具有啟發性的計數器是 每秒頁數和每秒缺頁數Pages/sec 表示系統使用磁碟交換記憶體相關資料的頻率(即分頁次數),而 Page Faults/sec 則統計分頁錯誤(即存取非預期記憶體位置時發生的錯誤)。持續過高的值通常表示記憶體不足或配置問題導致過度分頁。
在儲存方面,PerfMon 提供了一些計數器,例如 平均磁碟讀取時間(秒/秒)、平均磁碟寫入時間(秒/秒)、目前磁碟佇列長度和平均磁碟佇列長度前兩項指標衡量的是從磁碟讀取或寫入資料的平均時間;如果這兩項指標持續偏高,則表示存在 I/O 瓶頸。佇列(目前磁碟佇列長度和平均磁碟佇列長度)指示待處理操作的數量;如果佇列數量在讀寫時間激增的同時顯著增加,則很可能存在磁碟飽和問題或行程產生了過多的操作。
在伺服器上 數據庫,“ SQL Server 計數器 關鍵計數器包括以下群組:SQL Server 存取方法(資料表和索引使用情況)、SQL Server 緩衝區管理器(與資料快取相關:快取命中率、空閒頁、預期壽命等)、SQL Server 常規統計資料(登入、登出、使用者連線)、SQL Server 鎖定(短記憶體鎖定)、SQL Server 鎖定(鎖定和死鎖)以及 SQL Server 鎖定次數)以及 SQL Server 鎖定(短記憶體鎖定)、SQL Server 鎖定(鎖定和死鎖)以及 SQL Server 鎖定次數)以及 SQL Server 鎖定(短記憶體鎖定)、SQL Server 鎖定(鎖定和死鎖)以及 SQL Server 新增次數)以及 SQL Server 鎖定(短記憶體鎖定)、SQL Server 鎖定(鎖定和死鎖)以及 SQL Server 傳送次數資料(產生批次)。這些計數器有助於… 資料庫錯誤診斷 結合 CPU、記憶體和磁碟,它們可以幫助你區分問題是出在資料庫還是底層系統。
一個重要的細節是 反面價值觀絕不應孤立地解讀。需要考慮測量週期、樣本數量、環境(典型系統負載、使用者數量、運行進程)以及是否存在多個計數器共同指向相同原因。通常,您不會在單一計數器上看到巨大的峰值,而是在多個計數器上看到分散的小電壓峰值,這會使診斷變得複雜,但也使得歷史遙測資料更有價值。
熱修復程序、相容性和系統詳情
在某些版本的 Windows 系統中,特別是 窗戶7 以及 Windows Server 2008 R2, PerfMon及其相關元件偶爾會出現問題。 微軟已透過特定修復程序解決了這個問題(修補程序這些熱修復程序通常用於解決知識庫文章中描述的特定錯誤,作為官方建議,僅當您的系統受到所描述的確切問題影響時才應應用這些修復程序。
通常情況下,當有補丁程式可供直接下載時,您會在微軟的文章中看到「補丁程式下載可用」部分。如果沒有出現, 您需要聯絡微軟支援部門。 要取得這些補丁,有時會套用這些熱修復程式會安裝一些新檔案(DLL、EXE、OCX 等),這些檔案帶有特定的版本號,用於指示系統處於 RTM、SP1、GDR 或 LDR 版本。此外,還會新增 MANIFEST 和 MUM 檔案以及安全目錄 (.cat),以保持元件的一致性。
關於要求,其中許多熱修復程序需要 系統已安裝特定的服務包 (例如,Windows 7/2008 R2 中的 SP1)而且在大多數情況下,無需修改註冊表,但需要在安裝後重新啟動系統。如果您希望確保遙測環境(PerfMon、資源監視器、資料收集器集等)長期穩定運行,這些細節至關重要。
在微軟的技術文件中,你會找到詳細的表格,列出了更新的文件:名稱、版本、大小、日期、時間和平台(x86、x64、IA-64)。雖然這看起來似乎只是非常基本的訊息, 這些資訊對於驗證熱修復程序是否正確應用非常有用。 且系統庫之間不存在版本衝突。
整個生態系統,包括版本控制、模板相容性、資料收集器集的 XML 版本以及 Logman 等輔助工具,使得使用 PerfMon 進行本地遙測變得有些複雜,但也提供了… 極大的靈活性 能夠適應幾乎任何 Windows 環境,從工作站到大型伺服器叢集。
當您將精心挑選的計數器、周密規劃的資料收集器集、與其他平台的整合以及對空間和時間限制的精心配置結合起來時, PerfMon 成為非常強大的盟友 了解您的基礎設施如何運作,預測問題,並解決僅憑使用者症狀無法一眼診斷出的事件。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。
