• 1、windows自带系统能源监察和控制工具
  • 2、Windows监察和控制的数额出自:Performance
    Counters

    • 2.1 Performance
      Counter架构
    • 2.2 Performance
      Counter数据结构
    • 2.3 消费Performance
      Counter数据
  • 3、使用基于PDH的python客户端

 

 

1、Windows自带系统财富监察和控制工具

大家都掌握,Windows自带有系统财富监视器。重要有3个地点:

1)Windows的职分微机的质量页签,包蕴了CPU,内存,磁盘,互联网等系统财富的监察和控制。它至关心器重要监督检查系统能源的欧洲经济共同体使用意况,使用它,我们能够开采是不是有能源实现瓶颈了之类。

 澳门赌场app下载 1

 

2卡塔尔 Windows能源监视器

本条工具得以见见系统财富到底是由什么进程消耗的。通过它,能够高速查见到到底怎么进度占用了你的系统财富。

 澳门赌场app下载 2

3卡塔 尔(英语:State of Qatar) 品质监视器

前两种工具已经提供你要监督的绝大许多职能,在一些情形下,也许依旧不可能定位难题,当时就要求你更进一层的精通系统的运维处境。那么那些工具便是七个没有疑问的选取。

 澳门赌场app下载 3

 

2、Windows 监察和控制的数码来源:Performance Counters

      
Windows的那一个监察和控制工具之所以能够显得这几个能源的意况,它们的数量来源于都以叁个叫Performance
Counter的东东。

 

2.1 PerformanceCounter 架构

PerformanceCounter架构如下:

 澳门赌场app下载 4

 

 

动用了Producer / Consumer 架构,援救各类顾客端从Registry花费数据。

上海体育地方中,A 使用Registry接口来花费数据,而B 和 Performance
Monitor八个顾客端则运用了pdh.dll来开销数据。

 

 

 

2.2 Performance Counter 数据结构

生龙活虎旦您想用程序来花费Counter的多少,无论接收哪个种类API来花费数量,不论选择哪个种类工具来开销数据,都急需通晓Performance
Counter的园地语言,也正是说要打听它里面包车型客车数目是怎么着组织的。

 

它的基本概念如下:

Machine:机器,这个没什么好说的,支持消费本机的监控数据,也可以消费其他其他的监控数据。

perfObject:可以理解为监控哪种资源,譬如说处理器,磁盘

instance:监控的资源可能有多个实例,多个网卡,多个CPU,多块磁盘等

counter:计数器,每一个instance都会有多个计数器,例如cpu的idle,user,interrupt都是一个counter

 

更加直观的敞亮这么些概念: 

 澳门赌场app下载 5

 

 

2.3 消费Performance Counter数据

       从地方的架构图来看能够应用registry API恐怕 PDH.dll
,可能wmi等3种艺术来开支数据。那二种API是C大概C++开辟的。

 

澳门赌场app下载,1)Registry API :

 

2)WMI:

 

3)PDH API:

日前已知了三个版本:

C++:

 

Python :

Pywin3第22中学有多个win32pdh的模块,便是python版本的pdh。

 

 

别的工具:

4)windows自带的typeperf命令

5)nsclient++

 

3、使用基于PDH的python客商端

 

Win32pdh API说明:

使用win32pdh API的一个简易教程:

 

据书上说win32pdh 封装的意气风发套API:

 澳门赌场app下载 6

 

 

 

最左边是win32pdh模块,从python的货仓里下载就可以。

Windows_collector是自身封装的骨干代码,用于通过轻巧的代码,就可以监察和控制到系统能源。

最左边的则是来选取那套API的。使用那套API的益处是,不必去再花时间学习win32pdh这套API就能够轻易的收获你要的监察数据。

 

这套API的源码:

 澳门赌场app下载 7

澳门赌场app下载 8

澳门赌场app下载 9

澳门赌场app下载 10

 代码的命名规范不是 python的,想非看不可起来,也不会有太多的困顿。

利用那套API,只必要轻便的代码就能够对系统能源开展督察,举个例子:

ObjectCollector("Memory").collect()

 

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注