性能测试瓶颈分析(2)

发表于:2011-07-06来源:未知作者:领测软件测试网采编点击数: 标签:
CPU空闲时间为零(zero percent idle CPU) 过高的用户占用CPU时间(high percent user CPU) 过高的系统占用CPU时间(high percent system CPU) 长时间的有很长的运行进程队列(la

  CPU空闲时间为零(zero percent idle CPU)

  过高的用户占用CPU时间(high percent user CPU)

  过高的系统占用CPU时间(high percent system CPU)

  长时间的有很长的运行进程队列(large run queue size sustained over time)

  磁盘I/O:

  1 UNIX资源监控(Windows操作系统同理)中指标磁盘交换率(Disk rate),如果该参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。

  2 Windows资源监控中,如果 Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。

  I/O资源成为系统性能的瓶颈的征兆 :

  过高的磁盘利用率(high disk utilization)

  太长的磁盘等待队列(large disk queue length)

  等待磁盘I/O的时间所占的百分率太高(large percentage of time waiting for disk I/O)

  太高的物理I/O速率:large physical I/O rate(not sufficient in itself)

  过低的缓存命中率(low buffer cache hit ratio(not sufficient in itself))

  太长的运行进程队列,但CPU却空闲(large run queue with idle CPU)

  4.数据库服务器:

  SQL Server数据库:

  1 SQLServer资源监控中指标缓存点击率(Cache Hit Ratio),该值越高越好。如果持续低于80%,应考虑增加内存。

  2 如果Full Scans/sec(全表扫描/秒)计数器显示的值比1或2高,则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。

  3 Number of Deadlocks/sec(死锁的数量/秒):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0。

  4 Lock Requests/sec(锁请求/秒),通过优化查询来减少读取次数,可以减少该计数器的值。

  Oracle数据库:

  1 如果自由内存接近于0而且库快存或数据字典快存的命中率小于0.90,那么需要增加SHARED_POOL_SIZE的大小。

  快存(共享SQL区)和数据字典快存的命中率:

  select(sum(pins-reloads))/sum(pins) from v$librarycache;

  select(sum(gets-getmisses))/sum(gets) from v$rowcache;

  自由内存: select * from v$sgastat where name=’free memory’;

  2 如果数据的缓存命中率小于0.90,那么需要加大DB_BLOCK_BUFFERS参数的值(单位:块)。

  缓冲区高速缓存命中率:

  select name,value from v$sysstat where name in ('db block gets’,

  'consistent gets','physical reads') ;

  Hit Ratio = 1-(physical reads / ( db block gets + consistent gets))

  3 如果日志缓冲区申请的值较大,则应加大LOG_BUFFER参数的值。

  日志缓冲区的申请情况 :

  select name,value from v$sysstat where name = 'redo log space requests' ;

  4 如果内存排序命中率小于0.95,则应加大SORT_AREA_SIZE以避免磁盘排序 。

  内存排序命中率 :

  select round((100*b.value)/decode((a.value+b.value), 0, 1, (a.value+b.value)), 2)from v$sysstat a, v$sysstat b where a.name='sorts (disk)' and b.name='sorts (memory)'

  注:上述SQL Server和Oracle数据库分析,只是一些简单、基本的分析,特别是Oracle数据库的分析和优化,是一门专门的技术,进一步的分析可查相关资料 

原文转自:http://www.ltesting.net