Windows服务器经常使用的性能计数器

Windows经常使用性能计数器总结

基础监控:


  1.SQL Server Buffer: Buffer Cache Hit Ratio

  这是一个很重要查看内存是否不足的参数。SQL Server Buffer中的计数器Buffer Cache Hit Ratio用来指出SQLServer从缓存中而不是磁盘中得到数据的频率。sqlserver会将某些查询过的数据缓存在内存中用于之后再次查询使用。当一个查询A进来了之后数据库会编译这个sql看看须要哪些数据,而后执行计划首先去内存中找看是否有此次查询所须要的数据,若是这个一样的sql刚才已经执行过了或者该表的数据已经缓存在内存中,可是却没有在内存中找到数据,那就有多是由于内存不足引发内存挤压将缓存数据写回硬盘或者释放掉来提供数据库其余请求来使用。通常来讲oltp的系统,这个值最起码也应该在90%以上,理想值是99%。若是这个值低于90%,那建议你应该添加内存了。

  2.Memory: Pages/sec

  这个也是监控内存是否不足的一个比较重要的参数。这个计数器记录的是每秒钟内存和磁盘之间交换的页面数。频繁的交换页面就会消耗更多的io,这会影响到服务器的性能。打个比方,超市有一个货架上边摆满了新进的各类商品a、b、c,当你去超市想买a的时候直接去货架就能拿到a,方便的很,当顾客进超市逛一圈之后跟你说我怎么没有发现旧商品d呢,我就想买这个d,而后工做人员就会去仓库把商品d拿出来摆放到货架上供下次顾客来买。可是货架摆满了怎么办呢,只能将时间长没有人问津的a下架放到仓库而后空出来地方摆放d,可是下次另外一个顾客来了又有想要购买a的意向,工做人员就得再次把a拿出来替换掉货架上的d。其实内存就是这个货架,硬盘就是仓库。由于货架过小了,致使只能频繁的更换货架上的商品来提供正常的运营,想减小反复来回搬运产生的io开销,只能换个更大的货架来知足需求。

  若是服务器上只跑的sqlserver,那这个指标的理想范围应该是0-20之间,偶尔超过20的话影响不大,若是这个值频繁的超过20,那说明你的这台服务器可能须要加内存了。

固然这个指标要配合着上一个指标Buffer Cache Hit Ratio来看,若是上一个指标缓冲命中一直在99%或者更高,而这个期间内你的页交换一直在20以上,那意味着不只仅是内存不足,并且其余的程序占用了系统内存。

  3.Memory: Available Bytes

  另外一个监控内存状况的计数器就是这个。这个值最少最少也得大于5M,由于sqlserver须要始终维持5-10m的自由内存用于分配,当这个值低于5m的时候,那sqlserver可能会由于缺乏内存而产生性能瓶颈。

  4.Physical Disk: % Disk Time

  这个计数器记录的是磁盘的繁忙程度(是整个磁盘阵列或者物理磁盘的繁忙程度)。理论上这个值应该低于55%,若是持续的高于55%,那说明这台服务器上可能有io瓶颈。

若是只是偶尔的出现几回,那没必要担忧,可是能够对应的找到这个时间点,数据库正在干吗执行了哪些语句,对应的优化一下。

  5.Physical Disk: Avg. Disk Queue Length

   这是一个比较重要的查看磁盘io状况的指标。理论上每一个物理磁盘的值不该该超过2。固然这个值是须要计算的,好比用4块物理盘作了个raid10,此时在一个监控周期内磁盘队列的均值是10,那每块磁盘的队列值就是10/4=2.5,那么就能够说这个磁盘阵列存在i/o瓶颈了。这个跟以前的disktime指标同样,偶尔出现没必要担忧,若是长时间出现,那就得着手考虑解决磁盘的io性能问题了。

  6.Processor: % Processor Time

  这是监控cpu状况的一个指标(相似于disk time)。这个是观察cpu利用率的一个关键参数。若是Processor Time计数器的值持续超过80%,说明cpu存在瓶颈问题。若是只是偶尔出现,那说明多是这个时间点有个特别消耗cpu的查询,能够在下一次这个时间点来临的时候尝试抓一下sql而且优化它。若是在某一个时间点之后cpu一直飙高,常见的状况就是:1.忽然间的高并发2.索引重整3.忽然一个常用的数据量特别大的索引失效了4.死锁5.其余好多好多。先找到问题所在,在处理掉它。

  7.System: Processor Queue Length

  这个指标相似于disk queue length,也是算单个cpu的。单个cpu不能超过2,好比你是2u的机器,那这个值不该该超过4,若是在一个监控周期内持续性的超过4,那就可能出现cpu瓶颈了。

    8.Connections Established 当前链接数(Established + Close-Wait)
 
    9.Network Interface:Bytes Total/sec 网卡流量:发送+接收,字节

    10.% Free Space 逻辑分区可用空间,百分比(物理磁盘IO因为RAID级别不一样,或者有的机器没有RAID,没法定义统一的监控阈值)

==================================================

 

CPU:

%Processor Time

%Priviliaged Time
CPU在特权模式下处理线程所花的时间百分比。通常的系统服务,进城管理,内存管理等一些由操做系统自行启动的进程属于这类

%User Time
与%Privileged Time计数器正好相反,指的是在用户状态模式下(即非特权模式)的操做所花的时间百分比。若是该值较大,能够考虑是否经过算法优化等方法下降这个值。若是该服务器是数据库服务器,致使此值较大的缘由极可能是数据库的排序或是函数操做消耗了过多的CPU时间,此时能够考虑对数据库系统进行优化。

%DPC Time
处理器在网络处理上消耗的时间,该值越低越好。在多处理器系统中,若是这个值大于50%而且%Processor Time很是高,加入一个网卡可能会提升性能。

 

Memory:

Available Bytes

另外一个监控内存状况的计数器就是这个。这个值最少最少也得大于5M,由于sqlserver须要始终维持5-10m的自由内存用于分配,当这个值低于5m的时候,那sqlserver可能会由于缺乏内存而产生性能瓶颈。

Pages/sec

该计数器显示因为页面不在物理内存中而须要从磁盘读取的页面数。Pages/sec 的值很大不必定代表内存有问题,而多是运行使用内存映射文件的程序所致,操做系统常常会利用磁盘交换的方式提升系统可用的内存量或是提升内存的使用效率。(注意该计数器与 Page Faults/sec 的区别,后者只代表数据不能在内存的指定工做集中当即使用,包括硬错误和软错误)

 

Page Faults/sec计数器能够确保磁盘活动不是由分页致使的。在 Windows 中,换页的缘由包括:配置进程占用了过多内存 或者 文件系统活动。

若是在同一硬盘上有多个逻辑分区,须要使用 Logical Disk计数器而非 Physical Disk计数器。查看逻辑磁盘计数器有助于肯定哪些文件被频繁访问。当发现磁盘有大量读/写活动时,请查看读写专用计数器以肯定致使每一个逻辑卷负荷增长的磁盘活动类型,例如,Logical Disk: Disk Write Bytes/sec。

 

Page Input/sec
表示为了解决硬错误而写入硬盘的页数(参考值:>=Page Reads/sec)


Page Reads/sec
表示为了解决硬错误而从硬盘上读取的页数。(参考值: <=5)

 

  若是怀疑有内存泄露,请监视 Memory/Available Bytes 和 Memory/ Committed Bytes,以观察内存行为,并监视你认为可能在泄露内存的进程的 Process/ Private Bytes、Process/ Working Set 和Process/ Handle Count。若是怀疑是内核模式进程致使了泄露,则还应该监视 Memory/ Pool Nonpaged Bytes、Memory/ Pool Nonpaged Allocs 和 Process(process_name)/ Pool Nonpaged Bytes

  若是发生了内存泄漏,process\private bytes计数器和process\working set 计数器的值每每会升高,同时avaiable bytes的值会下降

 

private Bytes
是指进程所分配的没法与其余进程共享的当前字节数量。该计数器主要用来判断进程在性能测试过程当中有无内存泄漏。

例如:对于一个IIS之上的web应用,咱们能够重点监控inetinfo进程的Private Bytes,若是在性能测试过程当中,该进程的Private Bytes计数器值不断增长,或是性能测试中止后一段时间,该进程的Private Bytes仍然持续在高水平,则说明应用存在内存泄漏。

 

 

Disk:

PhysicalDisk\Avg. Disk sec/Read

以秒计算的在此盘上读取数据的所需平均时间。

 

Physical Disk\ Disk Reads/sec

在读取操做时从磁盘上传送的字节平均数。


PhysicalDisk\ Avg. Disk sec/Write

以秒计算的在此盘上写入数据的所需平均时间。

 

Physical Disk\ DiskWrites/sec

在写入操做时从磁盘上传送的字节平均数。

 

Physical Disk\ Avg.Disk sec/Transfer

反映磁盘完成请求所用的时间。较高的值代表磁盘控制器因为失败而不断重试该磁盘。这些故障会增长平均磁盘传送时间。

 

%Disk Time和Avg.Disk Queue Length

RAID 磁盘中的 % Disk Time 计数器会指示大于 100% 的值。若是出现这种状况,则使用 PhysicalDisk: Avg.Disk Queue Length计数器来肯定等待进行磁盘访问的平均系统请求数量。

若是不是RAID,则使用 % Disk Time 和 Current Disk Queue Length计数器肯定是否磁盘存在瓶颈,若是这两个计数器的值一直很高,则多是磁盘存在瓶颈

 

Physical Disk:
DiskTransfers/sec 磁盘IOPS
% Disk Time 当前物理磁盘利用率,若是是RAID,该值会大于100%
Current Disk Queue Length 等待进行磁盘访问的当前系统请求数量
Avg.Disk Queue Length 等待进行磁盘访问的平均系统请求数量,用于RAIDweb

相关文章
相关标签/搜索