September 2010
M T W T F S S
« Jul    
 12345
6789101112
13141516171819
20212223242526
27282930  

Oracle性能分析工具概览与开发设想

Kaya 发表于 os2ora.com

上一篇文章提到的那些个工具,主要侧重点在于实时监控,而在我看来,实时监控只是一个监控工具的一个职责而已。就如Linux上的collectl或者nmon一样,我们还需要对这些历史性能数据进行保存,以便于过后进行分析。而且,这也是一个不可或缺的功能,毕竟,DBA不会也不可能24小时盯着屏幕,DBA做的主要事情应该是对历史数据进行分析,从而更好的认识数据库的工作状态。

监控工具方面,也有很多实现这方面需求的软件。记得anySQL.net上面就有一个类似的监控工具。通过收集v$sysstat和v$session的数据,再利用图表的方式进行分析。这应该是这类软件的共性。

但有一个”工具”值得大提特提,那就是Oracle自身的AWR。AWR默认一个小时对系统做一次快照,这些快照其实就是难得的历史性能数据,Oracle自带的AWR报告,主要是基于两个快照间的分析,因此只能得到一些孤立的数值。如果我们能够更进一步,实现对所有快照数据的分析,我们就能清晰地了解系统过去一段时间(默认AWR保留7天)的工作负载的特征曲线,各种重要指标的变化曲线。我想,这些曲线对于DBA或者决策层而言都是极其有价值的。

对这些曲线进行部分展示的,就是Enterprise Manager了。在Performance这个Tab里面,可以选择按Historical浏览的方式。这其实就是对AWR Repository里的数据进行查询。不过EM只提供对一天时间跨度的drill down,所提供的曲线也比较有限,归纳起来,11g里EM提供的主要曲线有:

  1. Average Active Sessions – 7 Day View
  2. Host: Runnable Processes  – 1 Day
  3. Average Active Sessions – 1 Day
  4. Logon/Transaction Rate – 1 Day
  5. Physical Reads/Redo Size Rate – 1 Day
  6. Latency For Synchronous Single Block Reads – 1 Day
  7. I/O Megabytes per Second by I/O Function – 1 Day
  8. I/O Request per Second by I/O Function – 1 Day
  9. Sessions of Parallel Execution – 1 Day
  10. Active Sessions of Services – 1 Day

网络上实现类似功能的软件好象不多(知道的朋友请多comment一下),不过,碰巧也找到了一个,叫做ONDATAPERF。通过用户上传一系列的Statspack或者AWR报告,最后据说会产生一个类似这个链接的ONDATAPERF report。这个报告里面的图表看起来还是很酷的,随便抓一个ASH的例子。

image

当然,唯一的缺点是这是一个付费服务。

其实,要自己实现类似的功能或者更全面的图表也不是很难的一件事情。可以考虑参考nmon的Analyser,做一个专门针对AWR Repository的Analayser出来。这应该是挺有意义,挺有先驱性的一件事情。要真有这个工具,说不定可以和这个ONDATAPERF 竞争一番呢!

2 comments to Oracle性能分析工具概览与开发设想

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">