昨天数据库主机接连出现几次CPU资源占用率过高报警,导致主机性能低下,经过一番调查最终找出问题的原因,解决了这一故障,具体过程如下:
环境:主机SUSE LINUX 10 (64位)  ORACLE11G(64位)
一、报警信息(故障呈现) 

•suselinux服务器CPU利用率当前值为:90.93,  阀值范围为[90-100],发生时间11:17:01
•suselinux服务器CPU利用率当前值为:92.20,  阀值范围为[90-100],发生时间14:46:02
•suselinux服务器CPU利用率当前值为:92.54,  阀值范围为[90-100],发生时间15:14:01
 
二、分析过程(故障调查)
1、使用TOP命令查看系统资源
 

oracle审计导致的系统性能故障一例_第1张图片

shift加P:按CPU资源利用率降序排列  shift加M:按内存占用资源率降序排列

我们发现ORACLE进程占用率较高,CPU几次超限飙升到90%以上,严重影响了系统性能。
2、利用SAR命令检查IO和传送情况:
注:suse linux下使用sar命令,需要安装sysstat包。

oracle审计导致的系统性能故障一例_第2张图片

 发现每秒读入和写出的数据量比较大。

3、分析AWR报告
 

 

 

通过AWR报告发现,审计表更新比较频繁,当天有比较多的报表更新。
4、连接数据库,针对审计、索引进行查证

 发现索引失效,导致数据检索变的缓慢,SQL语句执行效率低,CPU消耗大。

5、问题解决,关闭审计重建索引

oracle审计导致的系统性能故障一例_第3张图片

 6、后续待优化:

查证SQL语句,避免效率低下的语句高并发执行引发buffer cache冲突而导致CPU资源的过度消耗。