监测对象System(系统)%TotalProcessorTime系统中所有处理器都处于繁忙状态的时间百分比,对于多处理器系统来说,该值可以反映所有处理器的平均繁忙状态,该值为100%,如果有一半的处理器为繁忙状态,该值为50%服务器。器消耗的处理器时间数量.如果服务器专用于sqlserver可接受的最大上限是80%-85%.也就是常见的CPU使用率.FileDataOperations/sec计算机对文件系统进行读取和写入操作的频率,但是不包括文件控制操作ProcessQueueLength线程在等待分配CPU资源所排队列的长度,此长度不包括正在占有CPU资源的线程。如果该队列的长度大于处理器个数+1,就表示处理器有可能处于阻塞状态(参考值:=处理器个数+1)Processor(处理器)%ProcessorTimeCPU利用率,该计数器最为常用,可以查看处理器是否处于饱和状态,如果该值持续超过95%,就表示当前系统的瓶颈为CPU,可以考虑增加一个处理器或更换一个性能更好的处理器。(参考值:80%)%PriviliagedTimeCPU在特权模式下处理线程所花的时间百分比。一般的系统服务,进城管理,内存管理等一些由操作系统自行启动的进程属于这类%UserTime与%PrivilegedTime计数器正好相反,指的是在用户状态模式下(即非特权模式)的操作所花的时间百分比。如果该值较大,可以考虑是否通过算法优化等方法降低这个值。如果该服务器是数据库服务器,导致此值较大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。表示耗费CPU的数据库操作,如排序,执行aggregatefunctions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。%DPCTime处理器在网络处理上消耗的时间,该值越低越好。越低越好。在多处理器系统中,如果这个值大于50%并且Processor:%ProcessorTime非常高,加入一个网卡可能会提高性能,提供的网络已经不饱和。Memory(内存)PageFaults/sec当处理器在内存中读取某一页出现错误时,就会产生缺页中断,也就是pageFault。如果这个页位于内存的其他位置,这种错误称为软错误,用TransitionFault/sec来衡量;如果这个页位于硬盘上,必须从硬盘重新读取,这个错误成为硬错误。硬错误会使系统的运行效率很快将下来。PageFaults/sec这个计数器就表示每秒钟处理的错误页数,包括硬错误和软错误。PageInput/sec表示为了解决硬错误而写入硬盘的页数(参考值:=PageReads/sec)PageReads/sec表示为了解决硬错误而从硬盘上读取的页数。Page/sec表示为了解决硬错误而从硬盘上读取或写入硬盘的页数(参考值:00~20)Pagespersecond:每秒钟检索的页数。该数字应少于每秒一页Workingset:理线程最近使用的内存页,反映了每一个进程使用的内存页的数量。如果服务器有足够的空闲内存,页就会被留在工作集中,当自由内存少于一个特定的阈值时,页就会被清除出工作集。AvailableMbytes剩余的可用物理内存,单位是兆字节(参考值:=10%)用物理内存数.如果AvailableMbytes的值很小(4MB或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。CatheBytes文件系统的缓存(默认为50%的可用物理内存)Process(进程)privateBytes进程无法与其他进程共享的字节数量。该计数器的值较大时,有可能是内存泄露的信号Workset最近处理线程使用的内存页PhysicalDisk(磁盘)%DiskTime表示磁盘驱动器为读取或写入请求提供服务所用的时间百分比,如果只有%DiskTime比较大,硬盘有可能是瓶颈。指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。如果三个计数器都比较大,那么硬盘不是瓶颈。如果只有%DiskTime比较大,另外两个都比较适中,硬盘可能会是瓶颈。在记录该计数器之前,请在Windows2000的命令行窗口中运行diskperf-yD。若数值持续超过80%,则可能是内存泄漏。应当总小于90%AverageDiskQueueLength表示磁盘读取和写入请求提供服务所用的时间百分比,可以通过增加磁盘构造磁盘阵列来提高性能(=磁盘数的2倍)读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。该值应不超过磁盘数的1.5~2倍。要提高性能,可增加磁盘。注意:一个RaidDisk实际有多个磁盘。不应当超过物理磁盘数量的2倍,正常值0.5AverageDiskReadQueueLength表示磁盘读取请求的平均数AverageDiskwriteQueueLength表示磁盘写入请求的平均数AverageDisksec/Read磁盘中读取数据的平均时间,单位是秒AverageDisksec/Transer磁盘中写入数据的平均时间,单位是秒,一般来说,定义该值小于15ms最为优异,介于15-30ms之间为良好,30-60ms之间为可以接受,超过60ms则需要考虑更换硬盘或硬盘的RAID方式了%Diskreads/sec(physicaldisk_total):每秒读硬盘字节数.该指标应总小于磁盘I/O子系统的容量%Diskwrite/sec(physicaldisk_total):每秒写硬盘字节数.该指标应当总小于硬盘I/O子系统的容量DiskBytes/sec指在进行写入或读取操作时从磁盘上传送或传出的字节速率。此值取决于硬盘的速度DiskTransfers/sec指在此盘上读取/写入操作速率。正常值(DiskBytes/sec)/3,此值过大表示系统要求的IO速度已接近硬盘的最大速度,要更换更快的硬盘DNetworkInterface(网络)ByteTotal/sec表示网络中接受和发送字节的速度,可以用该计数器来判断网络是否存在瓶颈(参考值:该计数器和网络带宽相除,50%)判断瓶颈判断应用程序的问题如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(contextswitches/sec显示的上下文切换次数太高)那么就会占用大量的系统资源,如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过高.从图的整体看.contextswitches/sec变化不大,throughout曲线的斜率较高,并且此时的contextswitches/sec已经超过了15000.程序还是需要进一步优化.判断CPU瓶颈如果processorqueuelength显示的队列长度保持不变(=2)个并且处理器的利用率%Processortime超过90%,那么很可能存在处理器瓶颈.如果发现processorqueuelength显示的队列长度超过2,而处理器的利用率却一直很低,或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈.%processortime平均值大于95,processorqueuelength大于2.可以确定CPU瓶颈.此时的CPU已经不能满足程序需要.急需扩展.CPU资源成为系统性能的瓶颈的征兆:很慢的响应时间(slowresponsetime)CPU空闲时间为零(zeropercentidleCPU)过高的用户占用CPU时间(%UserTime)过高的系统占用CPU时间(%PriviliagedTime:长期大于90%或者95%)长时间的有很长的运行进程队列(ProcessQueueLengt:大于处理器个数+1)判断内存泄露问题内存问题主要检查应用程序是否存在内存泄漏,如果发生了内存泄漏,process\privatebytes计数器和process\workingset计数器的值往往会升高,同时avaiablebytes的值会降低.内存泄漏应该通过一个长时间的,用来研究分析所有内存都耗尽时,应用程序反应情况的测试来检验.图中可以看到该程序并不存在内存泄露的问题.内存泄露问题经常出现在服务长时间运转的时候,由于部分程序对内存没有释放,而将内存慢慢耗尽.也是提醒大家对系统稳定性测试的关注.Windows资源监控中,如果Process\PrivateBytes计数器和Process\WorkingSet计数器的值在长时间内持续升高,同时Memory\Availablebytes计数器的值持续降低,则很可能存在内存泄漏。判断内存不足如果队列长度(PhysicalDisk\Avg.DiskQueueLength)增加的同时页面读取速率(PageReads/sec)并未降低,则内存不足。如果Memory\AvailableMbytes(剩余物理内存数)的值很小(4MB或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。硬件问题请观察Processor\Interrupts/sec计数器的值,该计数器测量来自输入/输出(I/O)设备的服务请求的速度。如果此计数器的值明显增加,而系统活动没有相应增加,则表明存在硬件问题。I/O资源成为系统性能的瓶颈的征兆IODataBytes/sec(处理从I/O操作读取/写入字节的速度。这个计数器为所有由本处理产生的包括文件、网络和设备I/O的活动计数。)IODataOperations/secIOOtherBytes/secIOOtherOperations/secIOReadBytes/sec(每秒IO读取字节数)IOReadOperations/secIOWriteBytes/sec(每秒IO写出字节数)IOWriteOperations/sec过高的磁盘利用率(highdiskutilization)太长的磁盘等待队列(PhysicalDisk\CurrentDiskQueueLength,正在等待磁盘访问的系统请求数量)等待磁盘I/O的时间所占的百分率太高(AverageDiskQueueLength)太高的物理I/O速率:largephysicalI/Orate(notsufficientinitself)过低的缓存命中率(lowbuffercachehitratio(notsufficientinitself))太长的运行进程队列,但CPU却空闲(ProcessQueueLength)在方案运行中,如果出现了大于3个用户的业务操作失败,或出现了服务器shutdown的情况,则说明在当前环境下,系统承受不了当前并发用户的负载压力,那么最大并发用户数就是前一个没有出现这种现象的并发用户数监视磁盘的使用情况监视磁盘活动涉及两个主要方面:监视磁盘I/O及检测过度换页隔离SQLServer产生的磁盘活动监视磁盘I/O及检测过度换页可以对下面两个计数器进行监视以确定磁盘活动:PhysicalDisk:%DiskTimePhysicalDisk:Avg.DiskQueueLength在系统监视器中,PhysicalDisk:%DiskTime计数器监视磁盘忙于读/写活动所用时间的百分比。如果PhysicalDisk:%DiskTime计数器的值较高(大于90%),请检查PhysicalDisk:CurrentDiskQueueLength计数器了解等待进行磁盘访问的系统请求数量。等待I/O请求的数量应该保持在不超过组成物理磁盘的轴数的1.5到2倍。大多数磁盘只有一个轴,但独立磁盘冗余阵列(RAID)设备通常有多个轴。硬件RAID设备在系统监视器中显示为一个物理磁盘。通过软件创建的多个RAID设备在系统监视器中显示为多个实例。可以使用CurrentDiskQueueLength和%DiskTime计数器的值检测磁盘子系统中的瓶颈。如果CurrentDiskQueueL