性能计数器解释

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

性能计数器解释如果Process\PrivateBytes计数器和Process\WorkingSet计数器的值持续升高同时Memory\Availablebytes计数器的值却持续降低的话说明很有可能是存在内存泄漏windows自带的PerformanceMonitor,控制面版-管理工具-性能检测内存泄漏,我们一般可以监视Process对象的HandleCount,VirutalBytes和WorkingSet三个Counter。HandleCount记录了进程当前打开的HANDLE的个数,监视这个Counter有助于我们发现程序是否有Handle泄漏;VirtualBytes记录了该进程当前在虚地址空间上使用的虚拟内存的大小,NT的内存分配采用了两步走的方法,首先,在虚地址空间上保留一段空间,这时操作系统并没有分配物理内存,只是保留了一段地址。然后,再提交这段空间,这时操作系统才会分配物理内存。所以,VirtualBytes一般总大于程序的WorkingSet。监视VirutalBytes可以帮助我们发现一些系统底层的问题;WorkingSet记录了操作系统为进程已提交的内存的总量,这个值和程序申请的内存总量存在密切的关系,如果程序存在内存的泄漏这个值会持续增加,但是VirtualBytes却是跳跃式增加的。性能对象计数器描述Processor使用%ProcessorTime(所有实例)指处理器执行非闲置线程时间的百分比。这个计数器设计成用来作为处理器活动的主要指示器。它通过在每个范例间隔中衡量处理器用于执行闲置处理线程的时间,并且用100%减去该值得出。(每台处理器有一个闲置线程,该线程在没有其它线程可以运行时消耗周期)。可将其视为范例间隔用于做有用工作的百分比。这个计数器显示在范例间隔时所看到的忙时平均值。这个值是用100%减去该服务不活动的时间计算出来的。Processor瓶颈Interrupts/sec指处理器每秒钟接收并维护的硬件中断的平均值。它不包括DPC,DPC将单独计算。这个值是产生中断的设备(如:系统时钟、鼠标、磁盘驱动器、数据交流线路、网络街面卡和其它附件设备)的活动的间接指示器,这些设备通常在完成了一项任务或需要注意时中断处理器。正常的线程操作在中断时悬停。大多数的系统时钟每隔10毫秒中断处理器一次,形成了间隔活动的后台。这个计数值显示用上两个实例中观察到的值之间的差除于实例间隔的持续时间所得的值。System/ProcessorQueueLength(所有实例)是指处理列队中的线程数。即使在有多个处理器的计算机上处理器时间也会有一个单列队。不象磁盘计数器,这个计数器仅计数就绪的线程,而不计数运行中的线程。如果处理器列队中总是有两个以上的线程通常表示处理器堵塞。这个计数器仅显示上一次观察的值;而不是一个平均值。System/ContextSwitches/sec指计算机上的所有处理器全都从一个线程转换到另一个线程的综合速率。当正在运行的线程自动放弃处理器时出现上下文转换,由一个有更高优先就绪的线程占先或在用户模式和特权(内核)模式之间转换以使用执行或分系统服务。它是在计算机上的所有处理器上运行的所有线程的Thread:ContextSwitches/sec的总数并且用转换数量衡量。在系统和线程对象上有上下文转换计数器。这个计数值显示在上一次两个实例中观察到的值除于实例间隔的持续时间所得的值的差异。Process(进程)PrivateBytes指这个处理不能与其它处理共享的、已分配的当前字节数。VirtualBytes指处理使用的虚拟地址空间的以字节数显示的当前大小。使用虚拟地址空间不一定是指对磁盘或主内存页的相应的使用。虚拟空间是有限,如果使用过多,可能会限制处理加载数据库的能力。WorkingSet指这个处理的WorkingSet中的当前字节数。WorkingSet是在处理中被线程最近触到的那个内存页集。如果计算机上的可用内存处于阈值以上,即使页不在使用中,也会留在一个处理的WorkingSet中。当可用内存降到阈值以下,将从WorkingSet中删除页。如果需要页时,它会在离开主内存前软故障返回到WorkingSet中。HandleCount由这个处理现在打开的句柄总数。这个数字是在这个处理中每个线程当前打开的句柄的总数。ObjectsThreads线程指在数据收集时在计算机中线程的数目。请注意这是一个即时计算而不是一个时间间隔的平均值。一个线程为一个基本的可执行实体,该实体在处理器中执行指令。Memory使用AvailableBytes是计算机上可用于运行处理的有效物理内存的字节数量。是用零、空闲和备用内存表上的空间总值计算的。空闲内存指可以使用内存;零内存指为了防止以后的处理看到以前处理使用的数据而在很多页内存中充满了零的内存。备用内存是指从处理的工作集(它的物理内存)移到磁盘的,但是仍旧可以调用的内存。这个计数器只显示上一次观察到的值;它不是一个平均值。CacheBytes是SystemCacheResidentBytes的总数。SystemDriverResidentBytes、SystemCodeResidentBytes、以及PoolPagedResidentBytes计数器。该计数器只显示最后一次观察的值,它不是一个平均值。Memory瓶颈或溢出Pages/sec是指为解析硬页错误从磁盘读取或写入磁盘的页数。(当处理程序请求不在本身工作集或物理内存其它地方中的代码或数据,而必须要从磁盘上检索时就会出现硬页错误)。这个计数器设计成可以显示导致系统范围延缓类型错误的主要指示器。它是Memory:PagesInput/sec和Memory:PagesOutput/sec的总和。是用页数计算的,以便在不用做转换的情况下就可以同其它页计数如:Memory:PageFaults/sec做比较,这个值包括为满足错误而在文件系统缓存(通常由应用程序请求)的非缓存映射内存文件中检索的页。这个计数器显示用上两个实例中观察到的值之间的差除于实例间隔的持续时间所得的值。PageReads/sec是指为解析硬页错误而读取磁盘的次数。(当处理请求的硬页错误不在工作集和物理内存其它地方中的代码或数据,而必须从磁盘上检索时就会出现硬页错误)。这个计数器设计成可以显示导致系统范围延缓错误的主要指示器。这个包括要满足错误而在文件系统缓存(通常由应用程序请求)的非缓存映射内存文件终检索的页。这个计数器显示用上两个实例中观察到的值之间的差除于实例间隔的持续时间所得的值。TransitionFaults/sec是指由在修改页列表、备份页表或在页错误时写入磁盘上造成的页错误数量。这些页是在没有额外磁盘活动的情况下恢复的。传输错误是在不计算每次操作时出错的页数的情况下计算错误数量。这个计数器显示用上两个实例中观察到的值之间的差除于实例间隔的持续时间所得的值。PoolPagedBytes指在分页池中的字节数,分页池是系统内存(操作系统使用的物理内存)中可供对象(在不处于使用时可以写入磁盘的)使用的一个区域。Memory:PoolPagedBytes的计数方式与Process:PoolPagedBytes的方式不同,因此可能不等于Process:PoolPagedBytes:_Total。这个计数器仅显示上一次观察的值;而不是一个平均值。PoolNonpagedBytes指在非分页池中的字节数,非分页池是指系统内存(操作系统使用的物理内存)中可供对象(指那些在不处于使用时不可以写入磁盘上而且只要分派过就必须保留在物理内存中的对象)使用的一个区域。Memory:PoolNonpagedBytes的计数方式与Process:PoolNonpagedBytes的计数方式不同,因此可能不等于PoolNonpagedBytes:_Total。这个计数器仅显示上一次观察的值;而不是一个平均值。PhysicalDisk的使用%DiskTime指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。请谨慎对待%DiskTime计数器。因为该计数器的_Total实例不能精确反映多磁盘系统的利用率,因此使用%IdleTime计数器也非常重要。%IdleTime汇报在实例间隔时磁盘闲置时间的百分比。DiskReads/sec指在此盘上读取操作的速率。DiskWrites/sec指在此盘上写入操作的速率。PhysicalDisk的瓶颈Avg.DiskQueueLength(所有实例)指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。SystemFileDataOperations/sec指在计算机的所有逻辑磁盘上读取和写入操作的综合速度。这是系统的逆转率:每秒钟的文件控制操作。这个总值显示了上两个实例中观察到的值的差异除于实例间隔的时间。ProcessorQueueLength是指处理列队中的线程数。即使在有多个处理器的计算机上处理器时间也会有一个单列队。不象磁盘计数器,这个计数器仅计数就绪的线程,而不计数运行中的线程。如果处理器列队中总是有两个以上的线程通常表示处理器堵塞。这个计数器仅显示上一次观察的值;而不是一个平均值。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功