Windows系统资源监察,开首品质监控

by admin on 2019年2月7日
  • 1、windows自带系统资源监控工具
  • 2、Windows监控的数量来源:Performance
    Counters

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

一、概述

Performance
Monitor是Windows内置的一个可视化监控工具,可以在OS级别上实时记录系统资源的应用景况,通过募集和仓储日志数据,在SQL
Server暴发分外时,可以东山再起系统及时的资源的施用情状,是对SQL
Server举行Troubleshooting的首选工具。Performance Monitor使用Performance
Counter来追踪系统的活动状态的测量值,取样间隔默许是15s,即,Performance
Monitor每隔15s,记录Performance Counter的当下值。

Performance
Monitor是Windows内置的一个可视化监控工具,可以在OS级别上实时记录系统资源的采纳状态,通过采访和储存日志数据,在SQL
Server发生极度时,可以还原系统当下的资源的应用情形,是对SQL
Server举行Troubleshooting的首选工具。Performance Monitor使用Performance
Counter来追踪系统的活动状态的测量值,取样间隔默许是15s,即,Performance
Monitor每隔15s,记录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的震慑很微小,提出拉开,多收集一些性质数据。

Performance Monitor主要有八个零件:Viewer和Data
Collector,分别用于查看和著录Performance
Counter的测量值,开启Performance
Monitor对Server的影响很轻微,提出拉开,多搜集一些品质数据。

 

其实,可以经过编写程序来走访具有的Windows质量计数器。Windows中,注册表是访问品质计数器的一种体制。质量信息并不实际存在于注册表中,在注册表编辑器RegEdit.exe中是力不从心查看的,但足以经过挂号表函数来访问,利用注册表键来得到从性质数据提供者那里提供的数额。打开名为HKEY_PERFORMANCE_DATA的特殊键,利用RegQueryValueEx函数查询键下边的值,就足以一向访问注册表品质计数器音信。当然,也足以动用质量数据支持器(PDH,
Performance Data Helper) API (Pdh.dll)来拜会质量计数器音信。

一,查看Viewer

一,查看Viewer

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

大家都了然,Windows自带有系统资源监视器。首要有3个地点:

1)
Windows的天职管理器的特性页签,包罗了CPU,内存,磁盘,互联网等系统资源的监察。它最主要督查系统资源的完好使用情况,使用它,大家可以发现是还是不是有资源达到瓶颈了之类。

 home88一必发 1

Windows系统资源监察,开首品质监控。 

2) Windows资源监视器

其一工具得以看出系统资源到底是由什么过程消耗的。通过它,能够便捷查看到到底怎么样进度占用了你的系统资源。

 home88一必发 2

3) 质量监视器

前三种工具已经提供你要监督的多数意义,在少数情况下,可能照旧无法定位难题,那时候就必要您更进一步的打听系统的运行情状。那么那些工具就是一个不错的选料。

 home88一必发 3

 

特性日志和警报是当做 Windows
操作系统的一有的发行的一种管理质量监控工具。它凭借由各类 Windows
组件、子系统和应用程序发表的品质计数器,使你可以跟踪资源利用意况以及针对性时间以图表形式绘制它们。您可以运用
Performance Logs and Alerts
来监督标准的属性计数器(例如,内存使用情状或电脑使用状态),或者你可以定义您自己的自定义计数器来监督应用程序特定的运动。

1,打开 Performance Monitor

1,打开 Performance Monitor

2、Windows 监控的数量来源:Performance Counters

      
Windows的那一个监控工具之所以能够显示那个资源的景色,它们的多寡来源于都是一个叫Performance
Counter的东东。

 

二、HKEY_PERFORMANCE_DATA数据社团

点击Windows+R,在Run中输入perfmon,打开Performance
Monitor,紧要分为多少个目录:Monitoring Tools,Data Collector Sets 和
Reports。

点击Windows+R,在Run中输入perfmon,打开Performance
Monitor,首要分为多少个目录:Monitoring Tools,Data Collector Sets 和
Reports。

2.1 PerformanceCounter 架构

PerformanceCounter架构如下:

 home88一必发 4

 

 

Windows系统资源监察,开首品质监控。使用了Producer / Consumer 架构,接济种种客户端从Registry消费数据。

上图中,A 使用Registry接口来费用数量,而B 和 Performance
Monitor八个客户端则动用了pdh.dll来费用数量。

 

 

 

特性数据的头顶是一个PERF_DATA_BLOCK结构(如图1所示),它描述系统和品质数据全体新闻,可从Global键值处查询获得该协会数据。PERF_DATA_BLOCK之后,定义了系统中的全体属性对象类型(PERF_OBJECT_TYPE),其中每个对象类型尾部中讲述了下一个属性对象类型的偏移量Offset。

home88一必发 5

home88一必发 6

2.2 Performance Counter 数据结构

若果你想用程序来成本Counter的数量,不论采纳哪一种API来消费数据,不论接纳哪一种工具来费用数量,都亟待通晓Performance
Counter的小圈子语言,也就是说要打听它其中的多少是如何社团的。

 

它的基本概念如下:

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

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

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

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

 

更直观的领会那几个概念: 

 home88一必发 7

 

 

home88一必发 8
图1home88一必发 9
图2

2,查看Performance Monitor

2,查看Performance Monitor

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分别讲述了那二种特性对象的数据协会方式。每个对象数据块包含了一个PERF_OBJECT_TYPE结构,描述对象的性质数据。紧随其后是PERF_COUNTER_DEFINITION结构列表,描述了品质对象的所有计数器定义。对于单实例对象,计数器定义列表后是一个PERF_COUNTER_BLOCK结构,计数器数据紧随其后。每个PERF_COUNTER_DEFINITION结构中定义了计数器数据绝对于PERF_COUNTER_BLOCK的偏移量,由此可以足够方便地收获任何计数器的值。对支撑多实例质量对象的话,PERF_COUNTER_DEFINITION结构列表之后是一组实例音讯数据块,每个代表代表一个目的实例。每个实例音讯数量块由一个PERF_INSTANCE_DEFINITION结构体、实例名和一个PERF_COUNTER_BLOCK结构体组成。前边是计数器值数据,与单实例对象相同。

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

Performance Monitor是Viewer,有二种查看形式:View Current Activity 和
View Log Data,前者用于实时督查当前数码,后者用于查看历史数据。

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

 

Win32pdh API说明:

动用win32pdh API的一个简短教程:

 

依照win32pdh 封装的一套API:

 home88一必发 10

 

 

 

最左侧是win32pdh模块,从python的库房里下载即可。

Windows_collector是本人封装的基本代码,用于通过简单的代码,即可监控到系统资源。

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

 

这套API的源码:

 home88一必发 11

home88一必发 12

home88一必发 13

home88一必发 14

 代码的命名规范不是 python的,想必要求看起来,也不会有太多的艰辛。

行使那套API,只要求简单的代码即可对系统资源拓展监控,例如:

ObjectCollector("Memory").collect()

 

home88一必发 15

home88一必发 16

home88一必发 17

图3

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

3,图表(Graph),显示计数器的测量值

三、质量计数器的架构

可见选择时间间隔(zoom
to),可以挑选突显和隐身指定的Counter,可以缩放(Scale)Counter的值

home88一必发,可以挑选时间距离(zoom
to),可以采用显示和隐身指定的Counter,可以缩放(Scale)Counter的值

品质计数器选取的是客户端服务器结构,质量数据利用共享内存存储,在行使中自定义质量计数器,在应用程序调用的时候调用品质计数器举行计数。连串布局如下:

home88一必发 18

home88一必发 19

home88一必发 20

4,Sample Interval,实时监督可以设置取样间隔和突显的数码长度

4,山姆ple Interval,实时监察可以安装取样间隔和浮现的多寡长度

品质计数器可以赢得应用程序质量的实时度量数据,而不需求经过记日志,进行其它的处理。而且品质计数器能够长距离查看,能够因此管理工具(MOM)进行田间管理。在费用上也极度的小。

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

Performance Monitor的抽样时间距离由属性 萨姆ple Interval
确定,通过Performance Monitor Properties -> General
tab查看取样间隔设置

四、.NET质量计数器达成

  • 勾选Sample
    automatically:自动取样
  • 萨姆ple 伊夫ry  X 
    seconds:采样的大运间隔
  • Duration X
    seconds:Viewer展现的岁月长度,那是 Real-提姆e
    监控情势下保持数据的最长日子
  • 勾选Sample
    automatically:自动取样
  • Sample 伊芙ry  X 
    seconds:采样的日子间隔
  • Duration X
    seconds:Viewer突显的年华长短,那是 Real-提姆e
    监控格局下保持数据的最长日子

在.NET Framework下有个程序集

home88一必发 21

home88一必发 22

(C:WINDOWSMicrosoft.NETFrameworkv2.0.50727perfcounter.dll)完毕了质量计数器作用,包含质量计数器的装置/卸载,值的读写。

二,创建Data Collector

二,创建Data Collector

在命名空间System.Diagnostic提供了一组品质计数器类,包蕴PerformanceCounterCategory,PerformanceCounter,PerformanceCounterInstaller,CouterSample等等。

Data Collector用于记录Performance Counter的数值,默许存储在C:\PerfLogs 目录下,五个Data
Collector的聚合就是一个Data Collector Set。

Data Collector用于记录Performance Counter的数值,默认存储在C:\PerfLogs 目录下,四个Data
Collector的集结就是一个Data Collector Set。

在.NET中品质计数器有上佳的架空封装,已毕起来比C/C++不难得多。大家在运用常常只关怀一些请求类型的多少度量,例如下述:

1,创制自定义的Data Collector Set

1,创造自定义的Data Collector Set

Requests Started

展开Data Collector Sets,点击User Defined->New->Data Collector
Set,输入Name,采取 Create Manually(Advanced),不使用模板,自定义成立。

举办Data Collector Sets,点击User Defined->New->Data Collector
Set,输入Name,选用 Create Manually(Advanced),不使用模板,自定义创设。

Requests Executing

home88一必发 23

home88一必发 24

Requests Completed

2,创立数量日志

2,创立数量日志

Requests Failed

挑选Create Data Logs,并勾选Performance
Counter,通过Add按钮添加Performance Counter,默许的萨姆ple
Interval是15s。

慎选Create Data Logs,并勾选Performance
Counter,通过Add按钮添加Performance Counter,默许的萨姆ple
Interval是15s。

Request Execution Time

home88一必发 25

home88一必发 26

Requests/Hour

3,添加Performance Counter

3,添加Performance Counter

Requests/5Min

基于监控目的,拔取合适的Counter,楼主创立的Data
Collector用于监控Disk活动,首要挑选以下7个计数器,通过Add按钮添加到左侧面板中。

据悉监察目标,选取适合的Counter,楼主成立的Data
Collector用于监控Disk活动,首要挑选以下7个计数器,通过Add按钮添加到右边面板中。

Requests/Min

home88一必发 27

home88一必发 28

Requests/Sec

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

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,指定为止收集数据的标准。

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)

Overall duration指定:在必然的年华之后,甘休收集数据(stop collecting
data after a period of time)

.Net最佳实践3:使用质量计数器收集质量数据

Limits指定:当数码搜集满足Duration和马克斯imum
Size条件时,将数据文件分离单独的数据文件。

Limits指定:当数码搜集满意Duration和马克斯imum
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.
  • 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

 home88一必发 29

 home88一必发 30

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

5,Data Manager,删除旧的不行数据

在Data Collector运行了很长世间之后,Data
Collector成立的数据文件可能很大,必须立刻将于事无补的数目清理掉,Data
Manger负责清理数据文件。

在Data Collector运行了很长世间之后,Data
Collector创造的数据文件可能很大,必须立即将于事无补的数据清理掉,Data
Manger负责清理数据文件。

当选指定的Data Collector Set,右击弹出高效菜单,打开Data Manager。在Data
Manager Tab中安装马克斯imum root path size=10GB,并勾选Enable Data
Manager复选框;在Actions Tab中,扩充一个Action,Age:30Days,勾选Delete
Data Files,表示将超越30天的数据文件删除。

入选指定的Data Collector Set,右击弹出高速菜单,打开Data Manager。在Data
Manager Tab中设置Maximum root path size=10GB,并勾选Enable Data
Manager复选框;在Actions Tab中,扩展一个Action,Age:30Days,勾选Delete
Data Files,表示将超越30天的数据文件删除。

home88一必发 31home88一必发 32

home88一必发 33home88一必发 34

三,查看Reports,还原计数器在某个历史时间点的测量值

三,查看Reports,还原计数器在某个历史时间点的测量值

要是设置了Data Collector的Limits属性,将数据文件分段,那么在Disk
Activity目录下,能来看三个文件,每个文件的分寸不会当先Stop Condtition
Tab的限量,楼主的文件大小不超越300MB,每个文件记录数据的小时不会超出6hours。

若果设置了Data Collector的Limits属性,将数据文件分段,那么在Disk
Activity目录下,能收看三个文本,每个文件的深浅不会超越Stop Condtition
Tab的限制,楼主的文件大小不超越300MB,每个文件记录数据的岁月不会高于6hours。

home88一必发 35

home88一必发 36

点击数据文件,Viewer就能自动加载数据,此时,Viewer处于View Log
Data格局。

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

  • 从图片面板,可以查阅种种Counter,在一定时间点的测量值;
  • 从时间轴,选中时间距离,右击选中Zoom To,可以缩放图表面板;
  • 从Counter面板,可以显示或隐藏计数器,能对单个计数值按比例缩放(Scale);
  • 从图纸面板,可以查阅各类Counter,在特定时间点的测量值;
  • 从时间轴,选中时间距离,右击选中Zoom To,可以缩放图表面板;
  • 从Counter面板,能够体现或隐藏计数器,能对单个计数值按比例缩放(Scale);

home88一必发 37

home88一必发 38

四,开启Performance Monitor对Server质量影响很微小

四,开启Performance Monitor对Server质量影响很微小

在一个Production Server上,Performance Monitor运行很长一段时间之后,Task
Management呈现消耗的CPU和内存资源数量很小,如图:

在一个Production Server上,Performance Monitor运行很长一段时间之后,Task
Management展现消耗的CPU和内存资源数量很小,如图:

home88一必发 39

home88一必发 40

引用《SQL Server 2012 实施与管理实战指南》:

引用《SQL Server 2012 实施与治本实战指南》:

默认的Performance Monitor 是用来Real-提姆e
检测种类的,在具体的标题分析中,更加多的是索要在难题时有暴发从前,开启Performance
Counter来收集数据,一段时间之后,或者难题再现之后,通过收集的数码,离线分析难题的气象和原因。

默许的Performance Monitor 是用来Real-提姆e
检测体系的,在切实的难题分析中,越多的是亟需在题材发生此前,开启Performance
Counter来收集数据,一段时间之后,或者难点再现之后,通过采访的多寡,离线分析难点的意况和原因。

有点DBA会担心,抓那样多Performance
Counter会不会潜移默化Server的性质,依据经验,Performance
Monitor对系统全部质量的熏陶大概感觉不到,所以,可以放心大胆地多收集一些Counter,时间间隔设置默许值
15s 是比较安全的。

稍加DBA会担心,抓那样多Performance
Counter会不会影响Server的习性,依照经验,Performance
Monitor对系统全部品质的震慑大概感觉不到,所以,能够放心大胆地多搜集一些Counter,时间间隔设置默许值
15s 是相比安全的。

万一品质日志文件当先1GB,在View Report时,加载log
file会很慢,一般将日志文件的Size的最大值设置为300MB。那可以经过甄选“Stop
Condition” Tab,勾选 马克斯imum Size 设置日志文件的最大值为300MB来落成。

要是质量日志文件领先1GB,在View Report时,加载log
file会很慢,一般将日志文件的Size的最大值设置为300MB。那可以因而增选“Stop
Condition” Tab,勾选 马克斯imum Size 设置日志文件的最大值为300MB来完成。

 

 

Performance
Counter是性质监控的测量值,直接涉及到监控的数码是或不是周到和客观,请继续阅读《Performance
Monitor2:Peformance
Counter》明白常用的计数器。

Performance
Counter是性质监控的测量值,直接关乎到监控的数目是或不是健全和成立,请继续阅读《Performance
Monitor2:Peformance
Counter》了然常用的计数器。

 

 

参照文档:

参考文档:

Windows Performance
Monitor

Windows Performance
Monitor

Performance Monitoring Getting Started
Guide.aspx)

Performance Monitoring Getting Started
Guide.aspx)

发表评论

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

网站地图xml地图