利用Windows性能计数器,Windows系统资源监控

乐虎游戏官网 11

 

品质监视,是Windows NT提供的风华正茂种系统功效。Windows
NT长期以来连续几天集成了质量监视工具,它提供关于操作系统当前运转处境的新闻,针对各个对象提供了数百个属性计数器。品质对象,便是被监视的目的,规范例子有Processor、Process、Memory、TCP/UDP/IP/ICMP、PhysicalDisk等。计数器经常提供操作系统、应用程序、服务、驱动程序等的习性相关新闻,以此来深入分析连串瓶颈和对系统及应用程序质量进行确诊和调优。品质计数器机制让应用程序和操作系统组件可以向质量监视应用程序,比方质量监视器(Performance
Monitor),报告一些与脾气有关的总括消息。PerfMon.exe中得以查看质量对象、质量计数器和指标实例,可通过增多计数器来查阅相关描述音讯。

乐虎游戏官网,2、Windows 监察和控制的数量出自:Performance Counters

      
Windows的那几个监督工具之所以能够体现这么些资源的景观,它们的多寡来源都是二个叫Performance
Counter的东东。

 

Requests Failed

 

在.NET Framework下有个程序集

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

 

Win32pdh API说明:

运用win32pdh API的二个简短教程:

 

基于win32pdh 封装的意气风发套API:

 乐虎游戏官网 1

 

 

 

最左侧是win32pdh模块,从python的仓Curry下载就可以。

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

最左侧的则是来选择那套API的。使用那套API的好处是,不必去再花时间读书win32pdh那套API就足以轻易的获得你要的监察数据。

 

这套API的源码:

 乐虎游戏官网 2

乐虎游戏官网 3

乐虎游戏官网 4

乐虎游戏官网 5

 代码的命名规范不是 python的,想必须要看起来,也不会有太多的紧巴巴。

行使这套API,只需求简单的代码就能够对系统资源拓宽监察和控制,比方:

ObjectCollector("Memory").collect()

 

在.NET中质量计数器有爱不释手的架空封装,完结起来比C/C++轻松得多。我们在运用常常只关切一些伸手类型的多少衡量,比如下述:

1、Windows自带系统能源监控工具

咱俩都理解,Windows自带有系统财富监视器。首要有3个地方:

1)
Windows的天职管理器的习性页签,包括了CPU,内部存款和储蓄器,磁盘,网络等系统能源的监察和控制。它最主要监督系统财富的全部使用情形,使用它,大家得以窥见是还是不是有能源达到瓶颈了等等。

 乐虎游戏官网 6

 

2) Windows财富监视器

其后生可畏工具得以看来系统能源到底是由什么进度消耗的。通过它,能够相当的慢查看到到底什么样进度占用了你的系统财富。

 乐虎游戏官网 7

3) 性能监视器

前三种工具已经提供您要监督的多数功力,在少数情状下,大概如故不能够定位难题,那时候就须求您更上一层楼的询问系统的运转处境。那么那个工具就是二个科学的挑选。

 乐虎游戏官网 8

 

.Net最好施行3:使用质量计数器搜罗质量数据

2.2 Performance Counter 数据结构

比如你想用程序来费用Counter的多寡,不论选取哪一种API来花费数据,不论采取哪类工具来成本数量,都亟待掌握Performance
Counter的圈子语言,也便是说要询问它在那之中的数码是何许组织的。

 

它的基本概念如下:

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

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

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

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

 

更加直观的敞亮那些概念: 

 乐虎游戏官网 9

 

 

在命名空间System.Diagnostic提供了少年老成组质量计数器类,包含PerformanceCounterCategory,PerformanceCounter,PerformanceCounterInstaller,CouterSample等等。

2.1 PerformanceCounter 架构

PerformanceCounter架构如下:

 乐虎游戏官网 10

 

 

选择了Producer / Consumer 架构,协理各个顾客端从Registry花费数量。

上海体育场合中,A 使用Registry接口来花费数据,而B 和 Performance
Monitor多少个顾客端则应用了pdh.dll来花费数据。

 

 

 

骨子里,能够透过编写程序来做客具备的Windows品质计数器。Windows中,注册表是访问质量计数器的意气风发种体制。质量音讯并不实际存在于注册表中,在注册表编辑器RegEdit.exe中是心余力绌查看的,但可以透过挂号表函数来访谈,利用注册表键来博取从性质数据提供者这里提供的数据。打开名称为HKEY_PERFORMANCE_DATA的特殊键,利用RegQueryValueEx函数查询键下边包车型地铁值,就可以一向访谈注册表质量计数器新闻。当然,也足以运用质量数据协助器(PDH,
Performance Data Helper) API (Pdh.dll)来拜候品质计数器新闻。

2.3 消费Performance Counter数据

       从地点的架构图来看能够利用registry API大概 PDH.dll
,或然wmi等3种方式来开销数据。那三种API是C或许C++开拓的。

 

1)Registry API :

 

2)WMI:

 

3)PDH API:

如今已知了七个本子:

C++:

 

Python :

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

 

 

其余工具:

4)windows自带的typeperf命令

5)nsclient++

 

四、.NET品质计数器实现

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

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

Requests/Min

Requests Executing

Requests/Sec

乐虎游戏官网 11

Monitor your SQL
Server

天性计数器选择的是客商端服务器结构,品质数据应用分享内部存款和储蓄器存款和储蓄,在运用中自定义质量计数器,在应用程序调用的时候调用质量计数器举行计数。体系布局如下:

图3

Requests/5Min

属性计数器能够博得应用程序质量的实时衡量数据,而无需通过记日志,举办别的的拍卖。何况品质计数器能够中间隔查看,能够透过管理工科具(MOM)进行管制。在开销上也不行的小。

Leave a Comment.