Windows系統資源監控

2021-09-09 02:45:25 字數 2414 閱讀 9557

3、使用基於pdh的python客戶端

我們都知道,windows自帶有系統資源監視器。主要有3個地方:

1) windows的任務管理器的效能頁籤,包括了cpu,記憶體,磁碟,網路等系統資源的監控。它主要監控系統資源的總體使用情況,使用它,我們可以發現是否有資源達到瓶頸了等等。

2) windows資源監視器

這個工具可以看出系統資源到底是由哪些程序消耗的。通過它,可以快速檢視到到底哪些程序占用了你的系統資源。

3) 效能監視器

前兩種工具已經提供你要監控的大部分功能,在某些情況下,可能仍然不能定位問題,這時候就需要你更進一步的了解系統的執行狀況。那麼這個工具就是乙個不錯的選擇。

windows的這些監控工具之所以能夠展示這些資源的情況,它們的資料**都是乙個叫performance counter的東東。

performancecounter架構如下:

採用了producer / consumer 架構,支援多種客戶端從registry消費資料。

上圖中,a 使用registry介面來消費資料,而b 和 performance monitor兩個客戶端則使用了pdh.dll來消費資料。

如果你想用程式來消費counter的資料,不論使用哪種api來消費資料,不論使用哪種工具來消費資料,都需要了解performance counter的領域語言,也就是說要了解它內部的資料是如何組織的。

它的基本概念如下:

machine:機器,這個沒什麼好說的,支援消費本機的監控資料,也可以消費其他其他的監控資料。

perfobject:可以理解為監控哪種資源,譬如說處理器,磁碟

instance:監控的資源可能有多個例項,多個網絡卡,多個cpu,多塊磁碟等

counter:計數器,每乙個instance都會有多個計數器,例如cpu的idle,user,interrupt都是乙個counter

更直觀的理解這些概念: 

從上面的架構圖來看可以使用registry api或者 pdh.dll ,或者wmi等3種方式來消費資料。這兩種api是c或者c++開發的。

1)registry api :

2)wmi:

3)pdh api:

目前已知了兩個版本:

c++:

python :

pywin32中有乙個win32pdh的模組,就是python版本的pdh。

其他工具:

4)windows自帶的typeperf命令

5)nsclient++

win32pdh api說明:

使用win32pdh api的乙個簡易教程:

基於win32pdh 封裝的一套api:

windows_collector是我封裝的核心**,用於通過簡單的**,即可監控到系統資源。

最左邊的則是來使用這套api的。使用這套api的好處是,不必去再花時間學習win32pdh這套api就可以輕鬆的獲取你要的監控資料。

這套api的原始碼:

**的命名規範不是 python的,想必看起來,也不會有太多的困難。

使用這套api,只需要簡單的**即可對系統資源進行監控,例如:

objectcollector("

memory

").collect()

系統資源監控

系統資源監控 free 觀察記憶體使用情況 uname 查閱系統與核心相關資訊 s 系統核心名稱 r 核心版本 uptime 觀察系統啟動時間與負載 netstat 網路監察 vmstat 偵測系統資源變化 iftop 網路流量的監控 netsata 網路監控 netsata 選項 a 將目前系統上...

linux系統資源監控

如何檢視linux支援哪些命令 連按兩次tab鍵 top 作為乙個廣為人知的linux工具,top是大多數的類 unix 作業系統任務管理器。它可以顯示當前正在執行的程序的列表,使用者可以按照不同的條件對該列表進行排序。它主要顯示了系統程序對cpu和記憶體的使用狀況。top可以快速檢查是哪個或哪幾個...

Linux系統資源監控

安裝nmon rpm安裝包可以在這找到你的版本,點這 ubuntu 或 manjaro 用命令或自己找一下安裝包,這裡不提供包了 nmon實時監控 匯出監控檔案 nmon ft s 10 c 60 m root nmon 引數說明 f 監控結果以檔案形式輸出,預設機器名 日期.nmon格式 f 指定...