动用Windows品质计数器,早先质量监察和控制

  • 一、windows自带系统财富监控工具
  • 二、Windows监察和控制的数额来源:Performance
    Counters

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

一、概述

Performance
Monitor是Windows内置的2个可视化监察和控制工具,能够在OS级别上实时记录系统能源的使用意况,通过采集和仓库储存日志数据,在SQL
Server产生分外时,能够过来系统立刻的能源的选用情状,是对SQL
Server实行Troubleshooting的首要采用工具。Performance Monitor使用Performance
Counter来追踪系统的活动状态的度量值,取样间隔暗中认可是壹5s,即,Performance
Monitor每隔壹伍s,记录Performance Counter的日前值。

 

特性监视,是Windows NT提供的一种系统机能。Windows
NT向来以来连日集成了品质监视工具,它提供关于操作系统当前运转情形的新闻,针对种种对象提供了数百本特性计数器。质量对象,便是被监视的靶子,典型例证有Processor、Process、Memory、TCP/UDP/IP/ICMP、PhysicalDisk等。计数器平常提供操作系统、应用程序、服务、驱动程序等的习性相关新闻,以此来分析系统瓶颈和对系统及应用程序性能实行确诊和调优。质量计数器机制让应用程序和操作系统组件能够向质量监视应用程序,比如品质监视器(Performance
Monitor),报告一些与个性有关的总结消息。PerfMon.exe中得以查看质量对象、质量计数器和对象实例,可经过添加计数器来查占星关描述消息。

Performance Monitor主要有三个零部件:Viewer和Data
Collector,分别用于查看和记录Performance
Counter的度量值,开启Performance
Monitor对Server的熏陶很微小,提议拉开,多收集一些性质数据。

 

实在,能够透过编写程序来拜会具有的Windows性能计数器。Windows中,注册表是访问质量计数器的壹种体制。品质音讯并不实际存在于注册表中,在注册表编辑器Reg艾德it.exe中是不能够查看的,但足以因此挂号表函数来访问,利用注册表键来得到从性质数据提供者那里提供的数码。打开名叫HKEY_PERFORMANCE_DATA的特殊键,利用RegQueryValueEx函数查询键上边包车型地铁值,就足以一直访问注册表品质计数器音讯。当然,也得以使用品质数据支持器(PDH,
Performance Data Helper) API (Pdh.dll)来拜访质量计数器音信。

一,查看Viewer

壹、Windows自带系统财富监控工具

大家都领会,Windows自带有系统能源监视器。主要有一个地方:

一)
Windows的职责管理器的质量页签,包蕴了CPU,内部存款和储蓄器,磁盘,网络等系统能源的督察。它至关主要督查系统能源的总体使用状态,使用它,大家能够窥见是还是不是有能源达成瓶颈了之类。

 网赌十大信誉的平台 1

 

二) Windows资源监视器

本条工具得以看看系统能源到底是由什么进程消耗的。通过它,能够神速查看到到底如何进程占用了你的系统财富。

 网赌十大信誉的平台 2

三) 质量监视器

网赌十大信誉的平台,前二种工具已经提供您要监督的绝大部分效益,在1些景况下,或然依旧不能够定位难点,那时候就须求您更进一步的刺探系统的运转情状。那么这些工具便是一个不易的选料。

 网赌十大信誉的平台 3

 

品质日志和警报是当做 Windows
操作系统的1部分发行的一种管理质量监控工具。它凭借由各个 Windows
组件、子系统和应用程序发表的属性计数器,使你能够跟踪财富选用状态以及针对性时间以图表格局绘制它们。您能够利用
Performance Logs and Alerts
来监督标准的习性计数器(例如,内部存款和储蓄器使用状态或电脑使用状态),大概您能够定义您本人的自定义计数器来监督应用程序特定的移位。

1,打开 Performance Monitor

二、Windows 监察和控制的多少来源:Performance Counters

      
Windows的这么些监督工具之所以能够展示那个能源的动静,它们的数额来自都以一个叫Performance
Counter的东东。

 

二、HKEY_PERFORMANCE_DATA数据协会

点击Windows+奥德赛,在Run中输入perfmon,打开Performance
Monitor,主要分为八个目录:Monitoring Tools,Data Collector Sets 和
Reports。

2.1 PerformanceCounter 架构

PerformanceCounter架构如下:

 网赌十大信誉的平台 4

 

 

使用了Producer / Consumer 架构,帮助八种客户端从Registry消费数据。

上海体育场所中,A 使用Registry接口来消费数据,而B 和 Performance
Monitor多个客户端则利用了pdh.dll来消费数据。

 

 

 

性情数据的头顶是三个PEXC90F_DATA_BLOCK结构(如图壹所示),它讲述系统和总体性数据总体消息,可从Global键值处查询获得该协会数据。PE奇骏F_DATA_BLOCK之后,定义了系统中的全部个性对象类型(PETiggoF_OBJECT_TYPE),个中各个对象类型尾部中描述了下二个属性对象类型的偏移量Offset。

网赌十大信誉的平台 5

贰.2 Performance Counter 数据结构

假诺您想用程序来开支Counter的数码,不论接纳哪个种类API来消费数量,不论采纳哪一类工具来消费数据,都亟需明白Performance
Counter的世界语言,也等于说要领悟它里面包车型客车数量是如何组织的。

 

它的基本概念如下:

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

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

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

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

 

越来越直观的明亮那几个概念: 

 网赌十大信誉的平台 6

 

 

网赌十大信誉的平台 7
图1网赌十大信誉的平台 8
图2

2,查看Performance Monitor

2.3 消费Performance Counter数据

       从上边的架构图来看能够采纳registry API只怕 PDH.dll
,也许wmi等三种方法来开支数量。这三种API是C可能C++开发的。

 

1)Registry API :

 

2)WMI:

 

3)PDH API:

当下已知了三个本子:

C++:

 

Python :

Pywin3第22中学有二个win3贰pdh的模块,正是python版本的pdh。

 

 

别的工具:

4)windows自带的typeperf命令

5)nsclient++

 

天性对象有二种:一种是单实例对象,另一种是多实例对象。图2和图3分别讲述了那二种天性对象的数据组织形式。每一种对象数据块包涵了3个PE路虎极光F_OBJECT_TYPE结构,描述对象的性质数据。紧随其后是PERF_COUNTER_DEFINITION结构列表,描述了质量对象的整个计数器定义。对于单实例对象,计数器定义列表后是一个PE汉兰达F_COUNTER_BLOCK结构,计数器数据紧随其后。每一种PE劲客F_COUNTER_DEFINITION结构中定义了计数器数据相对于PEHummerH二F_COUNTER_BLOCK的偏移量,因而得以格外便宜地获取任何计数器的值。对支撑多实例品质对象的话,PE汉兰达F_COUNTER_DEFINITION结构列表之后是一组实例消息数据块,每种代表代表叁个目的实例。各个实例消息数据块由三个PE帕杰罗F_INSTANCE_DEFINITION结构体、实例名和三个PEOdysseyF_COUNTER_BLOCK结构体组成。前边是计数器值数据,与单实例对象相同。

Performance Monitor是Viewer,有三种查看情势:View Current Activity 和
View Log Data,前者用于实时监察当前数量,后者用于查看历史数据。

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

 

Win32pdh API说明:

动用win32pdh API的二个简易教程:

 

基于win3二pdh 封装的1套API:

 网赌十大信誉的平台 9

 

 

 

最左边是win3二pdh模块,从python的堆栈里下载即可。

Windows_collector是自家封装的骨干代码,用于通过不难的代码,即可监察和控制到系统能源。

最左侧的则是来采纳那套API的。使用那套API的功利是,不必去再花时间读书win32pdh那套API就能够轻松的获得你要的督查数据。

 

这套API的源码:

 网赌十大信誉的平台 10

网赌十大信誉的平台 11

网赌十大信誉的平台 12

网赌十大信誉的平台 13

 代码的命名规范不是 python的,想一定要看起来,也不会有太多的劳顿。

选用那套API,只需求简单的代码即可对系统财富开始展览督察,例如:

ObjectCollector("Memory").collect()

 

网赌十大信誉的平台 14

网赌十大信誉的平台 15

图3

3,图表(Graph),突显计数器的度量值

三、质量计数器的架构

可见选拔时间间隔(zoom
to),能够挑选展现和隐身钦定的Counter,能够缩放(Scale)Counter的值

天性计数器选择的是客户端服务器结构,品质数据应用共享内部存款和储蓄器存款和储蓄,在行使中自定义品质计数器,在应用程序调用的时候调用品质计数器进行计数。连串布局如下:

网赌十大信誉的平台 16

网赌十大信誉的平台 17

4,Sample Interval,实时监控能够安装取样间隔和出示的多寡长度

属性计数器能够赢得应用程序质量的实时度量数据,而不要求经过记日志,举行此外的拍卖。而且质量计数器能够中远距离查看,能够由此管理工科具(MOM)进行保管。在费用上也十分小。

Performance Monitor的抽样时间间隔由属性 Sample Interval
显明,通过Performance Monitor Properties -> General
tab查看取样间隔设置

肆、.NET品质计数器完结

  • 勾选萨姆ple
    automatically:自动取样
  • Sample 伊夫ry  X 
    seconds:采集样品的大运间隔
  • Duration X
    seconds:Viewer呈现的小时长度,那是 Real-Time
    监察和控制形式下保持数据的最长日子

在.NET Framework下有个程序集

网赌十大信誉的平台 18

(C:WINDOWSMicrosoft.NETFrameworkv2.0.507二七perfcounter.dll)实现了质量计数器效能,包含品质计数器的设置/卸载,值的读写。

二,创建Data Collector

在命名空间System.Diagnostic提供了一组品质计数器类,包涵PerformanceCounterCategory,PerformanceCounter,PerformanceCounterInstaller,Couter萨姆ple等等。

Data Collector用于记录Performance Counter的数值,暗中同意存款和储蓄在C:\PerfLogs 目录下,四个Data
Collector的联谊就是一个Data Collector Set。

在.NET中质量计数器有曼妙的抽象封装,完成起来比C/C++简单得多。我们在应用日常只关切1些伸手类型的数量衡量,例如下述:

一,创立自定义的Data Collector Set

Requests Started

进展Data Collector Sets,点击User Defined->New->Data Collector
Set,输入Name,选取 Create 马努ally(Advanced),不采纳模板,自定义创建。

Requests Executing

网赌十大信誉的平台 19

Requests Completed

二,创立数量日志

Requests Failed

分选Create Data Logs,并勾选Performance
Counter,通过Add按钮添加Performance Counter,暗中同意的萨姆ple
Interval是15s。

Request Execution Time

网赌十大信誉的平台 20

Requests/Hour

3,添加Performance Counter

Requests/5Min

依据监察和控制目标,接纳合适的Counter,楼主创造的Data
Collector用于监察和控制Disk活动,主要选用以下多少个计数器,通过Add按钮添加到左边面板中。

Requests/Min

网赌十大信誉的平台 21

Requests/Sec

4,设置Data Collector Set的Stop Condition,使数据文件Size不会超越限制

然则真的要求做那一个质量计数器的安装/卸载,计数,读取照旧需求多量的代码,通过包装来简化编制程序接口。对于利用WCF来落到实处的劳务,可以根据WCF的扩充性,进行特别的包裹。

Windows使用Set来同样管理Data Collector,每种Data
Collector的多寡单独存款和储蓄在文书中,假使数据文件过大,在翻看时,Viewer加载进程缓慢,提议将Data
Collector的数据文件控制在300MB以内。打开钦赐Data Collector
Set的质量,切换成Stop Condition Tab,内定甘休收集数据的规则。

 

Overall duration钦赐:在早晚的岁月之后,截止收集数据(stop collecting
data after a period of time)

.Net最好实践叁:使用品质计数器收集品质数据

Limits内定:当数码搜集知足Duration和马克西姆um
Size条件时,将数据文件分离单独的数据文件。

  • Use limits to segment data collection
    into separate logs by selecting  When a limit is reached, restart
    the data collector set
    .
  • If both limit types are selected,
    data collection will stop or restart when the first limit is
    reached.
  • Duration:configure a time period
    for data collection to write to a single log file.
  • Maximum Size:restart the Data
    Collector Set or to stop collecting data when the log file reaches
    the limit.

Monitor your SQL
Server

 网赌十大信誉的平台 22

伍,Data Manager,删除旧的无效数据

在Data Collector运营了非常短世间之后,Data
Collector创设的数据文件可能非常的大,必须及时将无济于事的数额清理掉,Data
Manger负责清理数据文件。

当选钦赐的Data Collector Set,右击弹出高速菜单,打开Data Manager。在Data
Manager Tab中设置马克西姆um root path size=10GB,并勾选Enable Data
Manager复选框;在Actions Tab中,扩展1个Action,Age:30Days,勾选Delete
Data Files,表示将跨越30天的数据文件删除。

网赌十大信誉的平台 23网赌十大信誉的平台 24

3,查看Reports,还原计数器在某些历史时间点的衡量值

壹经设置了Data Collector的Limits属性,将数据文件分段,那么在Disk
Activity目录下,能来看几个文件,每种文件的大大小小不会超过Stop Condtition
Tab的限量,楼主的文件大小不超过300MB,各个文件记录数据的时日不会超越陆hours。

网赌十大信誉的平台 25

点击数据文件,Viewer就能自行加载数据,此时,Viewer处于View Log
Data形式。

  • 从图纸面板,能够查阅各样Counter,在特定时间点的度量值;
  • 从时间轴,选中时间距离,右击选中Zoom To,能够缩放图表面板;
  • 从Counter面板,能够显得或隐藏计数器,能对单个计数值按比例缩放(Scale);

网赌十大信誉的平台 26

肆,开启Performance Monitor对Server品质影响很微小

在3个Production Server上,Performance Monitor运转非常长壹段时间之后,Task
Management展现消耗的CPU和内部存款和储蓄器财富数量极小,如图:

网赌十大信誉的平台 27

引用《SQL Server 二〇一三 实施与管理实战指南》:

暗中认可的Performance Monitor 是用来Real-Time
检验系统的,在具体的题材浅析中,更多的是亟需在标题爆发此前,开启Performance
Counter来收集数据,一段时间之后,大概难点重现之后,通过采集的多寡,离线分析难题的现象和原因。

有点DBA会担心,抓那样多Performance
Counter会不会潜移默化Server的习性,依照经验,Performance
Monitor对系统一整合体质量的震慑差不多感觉不到,所以,能够放心大胆地多搜集①些Counter,时间距离设置暗中同意值
一5s 是相比安全的。

设若品质日志文件超过壹GB,在View Report时,加载log
file会很慢,一般将日志文件的Size的最大值设置为300MB。那能够通过甄选“Stop
Condition” Tab,勾选 马克西姆um Size 设置日志文件的最大值为300MB来促成。

 

Performance
Counter是性质量监督控的度量值,直接关乎到监察和控制的数码是还是不是健全和合理,请继续阅读《Performance
Monitor2:Peformance
Counter》了然常用的计数器。

 

参照文书档案:

Windows Performance
Monitor

Performance Monitoring Getting Started
Guide.aspx)

Post Author: admin

发表评论

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