• 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,内存,磁盘,网络等系统资源的监督。它至关主要督查系统资源的总体使用意况,使用它,大家可以发现是不是有资源完毕瓶颈了之类。

 澳门金沙国际 1

 

2) Windows资源监视器

其一工具得以观察系统资源到底是由哪些进程消耗的。通过它,可以高速查看到到底怎么着进程占用了您的系统资源。

 澳门金沙国际 2

3) 性能监视器

前三种工具已经提供您要监督的大部分效果,在好几情况下,可能依旧无法定位问题,那时候就须要您更进一步的了然系统的运行境况。那么这一个工具就是一个毋庸置疑的选拔。

 澳门金沙国际 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架构如下:

发端性能监控,Windows系统资源监察。 澳门金沙国际 4

 

 

动用了Producer / Consumer 架构,辅助多种客户端从Registry消费数据。

上图中,A 使用Registry接口来开支数据,而B 和 Performance
Monitor几个客户端则选拔了pdh.dll来花费数量。

 

 

 

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

澳门金沙国际 5

澳门金沙国际 6

2.2 Performance Counter 数据结构

若果您想用程序来消费Counter的数额,不论选择哪一种API来费用数量,不论拔取哪种工具来消费数据,都要求领会Performance
Counter的世界语言,也就是说要领悟它里面的数量是怎么着协会的。

 

它的基本概念如下:

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

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

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

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

 

更直观的了然那些概念: 

 澳门金沙国际 7

 

 

澳门金沙国际 8
图1澳门金沙国际 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:

 澳门金沙国际 10

 

 

 

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

Windows_collector是自己封装的骨干代码,用于通过简单的代码,即可监控到系统资源。

最右侧的则是来利用那套API的。使用那套API的补益是,不必去再花时间学习win32pdh那套API就足以轻松的收获你要的监察数据。

 

这套API的源码:

 澳门金沙国际 11

澳门金沙国际 12

澳门金沙国际 13

澳门金沙国际 14

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

选取那套API,只须求简单的代码即可对系统资源进行监督,例如:

ObjectCollector("Memory").collect()

 

澳门金沙国际 15

澳门金沙国际 16

澳门金沙国际 17

图3

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

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

三、性能计数器的架构

可见选取时间距离(zoom
to),可以挑选突显和隐藏指定的Counter,能够缩放(Scale)Counter的值

可以挑选时间距离(zoom
to),可以采纳突显和隐形指定的Counter,可以缩放(Scale)Counter的值

属性计数器采纳的是客户端服务器结构,性能数据应用共享内存存储,在行使中自定义性能计数器,在应用程序调用的时候调用性能计数器举行计数。连串布局如下:

澳门金沙国际 18

澳门金沙国际 19

澳门金沙国际 20

4,山姆ple Interval,实时监督可以安装取样间隔和出示的多寡长度

4,山姆ple Interval,实时监察可以设置取样间隔和突显的数码长度

特性计数器可以获得应用程序性能的实时度量数据,而不须要经过记日志,举行其余的拍卖。而且性能计数器可以远程查看,可以经过管理工具(MOM)进行管理。在用度上也要命的小。

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

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

四、.NET性能计数器完毕

  • 勾选山姆(Sam)ple
    automatically:自动取样
  • 山姆ple 伊芙ry  X 
    seconds:采样的光阴距离
  • Duration X
    seconds:Viewer彰显的小运长短,那是 Real-提姆(Tim)e
    监控格局下保持数据的最长日子
  • 勾选山姆ple
    automatically:自动取样
  • 萨姆ple 伊芙ry  X 
    seconds:采样的时间间隔
  • Duration X
    seconds:Viewer呈现的日子长度,那是 Real-提姆(Tim)e
    监控方式下保持数据的最长日子

在.NET Framework下有个程序集

澳门金沙国际 21

澳门金沙国际 22

(C:WINDOWSMicrosoft.NETFrameworkv2.0.50727perfcounter.dll)完结了性能计数器功用,包含性能计数器的安装/卸载,值的读写。

二,创建Data Collector

二,创建Data Collector

在命名空间System.Diagnostic提供了一组性能计数器类,包罗PerformanceCounterCategory,PerformanceCounter,PerformanceCounterInstaller,Couter山姆(Sam)ple等等。

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

澳门金沙国际 23

澳门金沙国际 24

Requests Completed

2,创制数量日志

2,成立数量日志

Requests Failed

分选Create Data Logs,并勾选Performance
Counter,通过Add按钮添加Performance Counter,默许的山姆(Sam)ple
Interval是15s。

接纳Create Data Logs,并勾选Performance
Counter,通过Add按钮添加Performance Counter,默许的山姆(Sam)ple
Interval是15s。

Request Execution Time

澳门金沙国际 25

澳门金沙国际 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

澳门金沙国际 27

澳门金沙国际 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

 澳门金沙国际 29

 澳门金沙国际 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中设置马克斯imum root path size=10GB,并勾选Enable Data
Manager复选框;在Actions Tab中,增加一个Action,Age:30Days,勾选Delete
Data Files,表示将跨越30天的数据文件删除。

澳门金沙国际 31澳门金沙国际 32

澳门金沙国际 33澳门金沙国际 34

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

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

一旦设置了Data Collector的Limits属性,将数据文件分段,那么在Disk
Activity目录下,能看到多少个文件,每个文件的高低不会超越Stop Condtition
Tab的范围,楼主的文件大小不领先300MB,每个文件记录数据的年华不会压倒6hours。

假定设置了Data Collector的Limits属性,将数据文件分段,那么在Disk
Activity目录下,能来看多少个文件,每个文件的轻重缓急不会当先Stop Condtition
Tab的限定,楼主的文件大小不超越300MB,每个文件记录数据的时光不会超越6hours。

澳门金沙国际 35

澳门金沙国际 36

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

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

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

澳门金沙国际 37

澳门金沙国际 38

四,开启Performance Monitor对Server性能影响很轻微

四,开启Performance Monitor对Server性能影响很轻微

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

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

澳门金沙国际 39

澳门金沙国际 40

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

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

默许的Performance Monitor 是用来Real-提姆(Tim)e
检测系统的,在切切实实的问题浅析中,越多的是急需在题材发出在此以前,开启Performance
Counter来收集数据,一段时间之后,或者问题再现之后,通过搜集的数码,离线分析问题的情状和原因。

默许的Performance Monitor 是用来Real-提姆(Tim)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,勾选 马克斯(Max)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)

相关文章