通过Windows常见性能计数器分析服务器性能瓶颈
2012-06-12 | 7:04
转载 http://www.cnblogs./junzhongxu/archive/2011/02/15/1954889.html
监测对象
? System(系统)
l %Total Processor Time
系统中所有处理器都处于繁忙状态的时间百分比,对于多处理器系统来说,该值可以反映所有处理器的平均繁忙状态,该值为100%,如果有一半的处理器为繁忙状态,该值为50%服务器。器消耗的处理器时间数量.如果服务器专用于sql server可接受的最大上限是80% -85 %.也就是常见的CPU 使用率.
l File Data Operations/sec
计算机对文件系统进行读取和写入操作的频率,但是不包括文件控制操作
l Process Queue Length
线程在等待分配CPU资源所排队列的长度,此长度不包括正在占有CPU资源的线程。如果该队列的长度大于处理器个数+1,就表示处理器有可能处于阻塞状态(参考值:<=处理器个数+1) ? Processor(处理器)
l %Processor Time
CPU利用率,该计数器最为常用,可以查看处理器是否处于饱和状态,如果该值持续超过 95%,就表示当前系统的瓶颈为CPU,可以考虑增加一个处理器或更换一个性能更好的处理器。(参考值:<80%)
l %Priviliaged Time
CPU在特权模式下处理线程所花的时间百分比。一般的系统服务,进城管理,内存管理等一些由操作系统自行启动的进程属于这类
l %User Time
与%Privileged Time计数器正好相反,指的是在用户状态模式下(即非特权模式)的操作所花的时间百分比。如果该值较大,可以考虑是否通过算法优化等方
法降低这个值。如 果该服务器是数据库服务器,导致此值较大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。表示耗费 CPU的数据库操作,如排序,执行aggregate functions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。
l %DPC Time
处理器在网络处理上消耗的时间,该值越低越好。越低越好。在多处理器系统中,如果这个值大于50%并且Processor:% Processor Time非常高,加入一个网卡可能会提高性能,提供的网络已经不饱和。 ? Memory(内存)
l Page Faults/sec
当处理器在内存中读取某一页出现错误时,就会产生缺页中断,也就是 page Fault。如果这个页位于内存的其他位 置,这种错误称为软错误,用Transition Fault/sec 来衡量;如果这个页位于硬盘上,必须从硬盘重新读取,这个错误成为硬错误。硬错误会使系统的运行效率很快将下来。Page Faults/sec这个计数器就表示每秒钟处理的错误页数,包括硬错误和软错误。
l Page Input/sec
表示为了解决硬错误而写入硬盘的页数(参考值:>=Page Reads/sec)
l Page Reads/sec
表示为了解决硬错误而从硬盘上读取的页数。
l Page/sec
表示为了解决硬错误而从硬盘上读取或写入硬盘的页数(参考值:00~20)
l Pages per second:
每秒钟检索的页数。该数字应少于每秒一页Working set:理线程最近使用的内存页,反映了每一个进程使用的内存页的数量。如果服务器有足够的空闲内存,页就会被留在工作集中,当自由内存少于一个特定的阈值时,页就会被清除出工作集。
l Available Mbytes
剩余的可用物理内存,单位是兆字节(参考值:>=10%)用物理内存数. 如果Available Mbytes的值很小(4 MB 或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。
l Cathe Bytes
文件系统的缓存(默认为50%的可用物理内存) ? Process(进程)
l private Bytes
进程无法与其他进程共享的字节数量。该计数器的值较大时,有可能是内存泄露的信号
l Work set
最近处理线程使用的内存页 ? PhysicalDisk(磁盘)
l %Disk Time
表示磁盘驱动器为读取或写入请求提供服务所用的时间百分比,如果只有%Disk Time比较大,硬盘有可能是瓶颈。指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。如果三个计数器都比较大,那么硬盘不是瓶颈。如果只 有%Disk Time比较大,另外两个都比较适中,硬盘可能会是瓶颈。在记录该计数器之前,请在Windows 2000的命令行窗口中运行diskperf -yD。若数值持续超过80%,则可能是内存泄漏。应当总小于90%
l Average Disk Queue Length
表示磁盘读取和写入请求提供服务所用的时间百分比,可以通过增加磁盘构造磁盘阵列来提高性能(<=磁盘数的2倍)读取和写入请求(为所选磁盘 在实例间隔中列队的)的平均数。该值应不超过磁盘数的1.5~2 倍。要提高性能,可增加磁盘。注意:一个Raid Disk实际有多个磁盘。不应当超过物理磁盘数量的2倍,正常值<0.5
l Average Disk Read Queue Length
表示磁盘读取请求的平均数
l Average Disk write Queue Length
表示磁盘写入请求的平均数
l Average Disk sec/Read
磁盘中读取数据的平均时间,单位是秒
l Average Disk sec/Transer
磁盘中写入数据的平均时间,单位是秒,一般来说,定义该值小于15ms最为优异,介于15-30ms之间为良好,30-60ms之间为可以接受,超过60ms则需要考虑更换硬盘或硬盘的RAID方式了
l %Disk reads/sec(physicaldisk_total):
每秒读硬盘字节数. 该指标应总小于磁盘I/O子系统的容量
l %Disk write/sec(physicaldisk_total):
每秒写硬盘字节数. 该指标应当总小于硬盘I/O子系统的容量
l Disk Bytes/sec
指在进行写入或读取操作时从磁盘上传送或传出的字节速率。 此值取决于硬盘的速度
l Disk Transfers/sec
指在此盘上读取/写入操作速率。 正常值<(Disk Bytes/sec)/3,此值过大表示系统要求的IO速度已接近硬盘的最大速度,要更换更快的硬盘 D ? Network Interface(网络)
l Byte Total/sec
表示网络中接受和发送字节的速度,可以用该计数器来判断网络是否存在瓶颈(参考值:该计数器和网络带宽相除,<50%)
判断瓶颈
? 判断应用程序的问题
如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(context switches/sec显示的上下文切换次数太高)那么就会占用大量的系统资源,如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过