澳门新葡亰平台官网下载-平台游戏app > 操作系统 >
选取Windows品质计数器(PerformanceCounter卡塔尔(قطر‎监察和控制【平台游戏app】
  • 1、windows自带系统财富监察和控制工具
  • 2、Windows监察和控制的数量来自:Performance Counters
    • 2.1 Performance Counter架构
    • 2.2 Performance Counter数据布局
    • 2.3 消费Performance Counter数据
  • 3、使用基于PDH的python客商端

一、概述

 

天性监视,是Windows NT提供的后生可畏种系统机能。Windows NT长久以来接连几日集成了质量监视工具,它提供有关操作系统当前运营意况的音信,针对种种对象提供了数百个属性流速计。品质对象,就是被监视的靶子,标准例证有Processor、Process、Memory、TCP/UDP/IP/ICMP、PhysicalDisk等。流速计平日提供操作系统、应用程序、服务、驱动程序等的属性相关消息,以此来解析连串瓶颈和对系统及应用程序品质举行确诊和调优。质量流速计机制让应用程序和操作系统组件能够向质量监视应用程序,譬喻质量监视器(Performance Monitor卡塔尔,报告一些与性情有关的计算音讯。PerfMon.exe中得以查阅质量对象、品质流速計和对象实例,可经过增多流速计来查占星关描述消息。

 

实际,能够因此编写程序来拜候具备的Windows质量流速计。Windows中,注册表是拜候品质流速计的大器晚成种机制。品质音讯并不实际存在于注册表中,在注册表编辑器RegEdit.exe中是回天无力查看的,但能够通过注册表函数来访谈,利用注册表键来获得从质量数据提供者这里提供的数码。展开名叫HKEY_PERFORMANCE_DATA的特殊键,利用RegQueryValueEx函数查询键上面包车型地铁值,就足以一向访谈注册表质量流速計音讯。当然,也可以利用品质数据扶植器(PDH, Performance Data HelperState of Qatar API (Pdh.dllState of Qatar来拜谒质量流速计新闻。

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

我们都掌握,Windows自带有系统财富监视器。首要有3个地点:

1) Windows的天职微机的品质页签,包蕴了CPU,内部存储器,磁盘,网络等系统资源的监督检查。它根本监督检查系统能源的欧洲经济共同体使用情形,使用它,我们得以窥见是不是有财富实现瓶颈了等等。

 平台游戏app 1

 

2) Windows财富监视器

以此工具得以见见系统财富到底是由哪些进度消耗的。通过它,能够高速查看见到底怎么进度占用了您的系统能源。

 平台游戏app 2

3) 质量监视器

前三种工具已经提供你要监督的大部意义,在一些情状下,恐怕仍然不能够定位难题,此时就须要你更进一层的精晓系统的运营情况。那么那些工具正是二个没有错的选料。

 平台游戏app 3

 

质量日志和警示是当作 Windows 操作系统的生龙活虎有些批发的生机勃勃种管理质量监察和控制工具。它依据由各个 Windows 组件、子系统和应用程序发表的属性计数器,使您能够追踪能源利用状态以致针对时间以图表方式绘制它们。您能够行使 Performance Logs and Alerts 来监督标准的天性流量计(例如,内部存款和储蓄器使用状态或微型机使用状态),或然你能够定义您本人的自定义流速計来监督应用程序特定的移动。

2、Windows 监察和控制的数量来自:Performance Counters

       Windows的那几个监督工具之所以能够显示那个财富的状态,它们的数据来源都以多个叫Performance Counter的东东。

 

二、HKEY_PERFORMANCE_DATA数据组织

2.1 PerformanceCounter 架构

PerformanceCounter布局如下:

 平台游戏app 4

 

 

选用了Producer / Consumer 布局,扶持各个顾客端从Registry费用数据。

上航海用教室中,A 使用Registry接口来费用数据,而B 和 Performance Monitor七个顾客端则选用了pdh.dll来花销数量。

 

 

 

品质数据的底部是叁个PE福特ExplorerF_DATA_BLOCK构造(如图1所示State of Qatar,它描述系统和品质数据全部新闻,可从Global键值处查询获得该组织数据。PEQX56F_DATA_BLOCK之后,定义了系统中的全部品质对象类型(PE逍客F_OBJECT_TYPEState of Qatar,在那之中每一种对象类型尾部中描述了下叁特性质对象类型的偏移量Offset。

2.2 Performance Counter 数据结构

假诺你想用程序来开支Counter的数额,无论选取哪一类API来费用数量,无论选拔哪个种类工具来花费数据,都亟需驾驭Performance Counter的领域语言,也正是说要打听它个中的数量是哪些组织的。

 

它的基本概念如下:

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

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

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

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

 

越来越直观的精晓那几个概念: 

 平台游戏app 5

 

 

平台游戏app 6 图1平台游戏app 7 图2

2.3 消费Performance 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++

 

性子对象有二种:生机勃勃种是单实例对象,另生机勃勃种是多实例对象。图2和图3分不要陈诉了那二种属性对象的数据组织格局。种种对象数据块包蕴了二个PE宝马X5F_OBJECT_TYPE布局,描述对象的脾性数据。紧随其后是PE昂CoraF_COUNTER_DEFINITION布局列表,描述了质量对象的全方位流速计定义。对于单实例对象,流速計定义列表后是三个PE普拉多F_COUNTER_BLOCK构造,流量计数据紧随其后。每种PE凯雷德F_COUNTER_DEFINITION布局中定义了计数器数据相对于PE景逸SUVF_COUNTER_BLOCK的偏移量,因而得以十一分有利地得到任何流量计的值。对支撑多实例品质对象的话,PETucsonF_COUNTER_DEFINITION构造列表之后是风流洒脱组实例新闻数据块,每一个代表代表一个对象实例。每一个实例音信数据块由贰个PE宝马7系F_INSTANCE_DEFINITION构造体、实例名和三个PEXC60F_COUNTER_BLOCK结构体组成。前面是流速计值数据,与单实例对象相似。

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

 

Win32pdh API说明:

采取win32pdh API的一个大约教程:

 

基于win32pdh 封装的一套API:

 平台游戏app 8

 

 

 

最右面是win32pdh模块,从python的库房里下载就可以。

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

最左侧包车型地铁则是来选择那套API的。使用那套API的好处是,不必去再花时间学习win32pdh那套API就能够轻便的收获你要的监察和控制数据。

 

这套API的源码:

 平台游戏app 9

平台游戏app 10

平台游戏app 11

平台游戏app 12

 代码的命名标准不是 python的,想必须求看起来,也不会有太多的辛苦。

采纳那套API,只需求轻巧的代码就可以对系统能源扩充监察,例如:

ObjectCollector("Memory").collect()

 

平台游戏app 13

图3

三、品质流量计的结构

质量流量计接纳的是客商端服务器布局,品质数据接受分享内部存款和储蓄器存款和储蓄,在使用中自定义品质流速计,在应用程序调用的时候调用性能计数器进行计数。类别布局如下:

平台游戏app 14

属性流速計能够拿走应用程序品质的实时度量数据,而不须求通过记日志,举办别的的管理。并且品质流量计能够长间隔查看,能够透过管理工科具(MOM)进行田间管理。在花销上也异常的小。

四、.NET品质流速計实现

在.NET Framework下有个程序集

(C:WINDOWSMicrosoft.NETFrameworkv2.0.50727perfcounter.dll)完毕了品质流量计功效,包罗质量流速计的设置/卸载,值的读写。

在命名空间System.Diagnostic提供了生机勃勃组性能流量计类,包蕴PerformanceCounterCategory,PerformanceCounter,PerformanceCounterInstaller,CouterSample等等。

在.NET中品质计数器有精良的虚幻封装,实现起来比C/C++轻便得多。大家在利用常常只关注一些伸手类型的数量衡量,比方下述:

Requests Started

Requests Executing

Requests Completed

Requests Failed

Request Execution Time

Requests/Hour

Requests/5Min

Requests/Min

Requests/Sec

但是真的须求做那么些品质流量计的安装/卸载,计数,读取依然须要多量的代码,通过包装来简化编程接口。对于利用WCF来贯彻的劳务,能够依据WCF的扩充性,举办越来越包裹。

 

.Net最棒奉行3:使用质量计数器采摘品质数据

Monitor your SQL Server