andy - 2011/4/8 13:02:00
SQL SERVER自带性能监视器,重点考察以下指标:
1.Memory: Pages/sec
这个计数器记录的是每秒钟内存和磁盘之间交换的页面数。
如果这个值平均总是超过20,其中最大的一个可能是内存瓶颈问题,需要增加内存。
2.Memory: Available Bytes
这个值至少大于5M,否则需要添加更多的物理内存。
3.Physical Disk: % Disk Time
这个计数器度量磁盘阵列繁忙程度(不是逻辑分区或磁盘阵列上独立的磁盘)。
原则上计数器% Disk Time的值应该小于55%。如果持续超过55%(在你24小时的监控周期里大约超过10分钟),说明你的SQLServer有I/O瓶颈。
4.Physical Disk: Avg. Disk Queue Length
磁盘阵列中的各个磁盘的该值如果超过2(在你24小时的监控周期里大约超过10分钟),那么你的磁盘阵列存在I/O瓶颈问题。
5.Processor: % Processor Time
如果持续超过80%(在你24小时的监控周期里大约超过10分钟),说明CPU存在瓶颈问题。
6.SQL Server Buffer: Buffer Cache Hit Ratio(SQLServer缓冲管理器-缓存命中率)
用来指出SQLServer从缓存中而不是磁盘中获得数据的频率。在一个OLTP程序中,该比率应该超过90%,理想值是超过99%。
如果你的 buffer cache hit ratio低于90%,你需要立即增加内存。
如果该比率在90%和99%之间,你应该认真考虑购买更多的内存了。
如果接近99%,你的SQLServer 性能是比较快的了。
某些情况下,如果你的数据库非常大,你不可能达到99%,即使你在服务器上配置了最大的内存。
你所能做的就是尽可能的添加内存。
如果持续低于80%,应考虑增加内存。
7.System: Processor Queue Length
根 据% Processor Time计数器,你可以监控Processor Queue Length计数器。
每个CPU的该值如果持续超过2(在你24小时的监控周期里大约超过10分钟),那么你的CPU存在瓶颈问题。
例如,如果你的服务器 有4个CPU,Processor Queue Length计数器的值总共不应超过8。
8.SQL Server General: User Connections
既然sqlserver的使用人数会影响它的性能,你就需要专注于sqlserver的General Statistics Object: User Connections计数器。
它显示sqlserver目前连接的数量,而不是用户数。如 果该计数器超过255,那么你需要将sqlserver的"Maximum Worker Threads" 的配置值设置得比缺省值255高。
如果连接的数量超过可用的线程数,那么sqlserver将共享线程,这样会影响性能。
"Maximum Worker Threads"需要设置得比你服务器曾经达到的最大连接数更高。
9.Processor:%User Time
表示耗费CPU的数据库操作,如排序,执行aggregate functions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。
Processor\%User Time 是系统非核心操作消耗的CPU时间,如果该值较大,可以考虑是否能通过友好算法等方法降低这个值.
如果该服务器是数据库服务器, Processor\%User Time 值大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化.
10 Disk Transfer/sec
一般来说,定义该值小于15ms最为优异,介于15-30ms之间为良好,30-60ms之间为可以接受,超过60ms则需要考虑更换硬盘或硬 盘的RAID方式了。