昨晚网友发来一份awr报告,希望帮忙分析一下。由于其他信息都没有,仅仅只有一份awr,鉴于目前有大多的朋友还不太熟悉或者说不知道如何去进行awr的分析。我这里就拿这个awr来进行分析,当抛砖引玉了。首先申请,网上分析awr的文章不少,大家也都可以参考一下。

首先来看awr前面部分信息,了解下系统的版本,以及大概判断下系统负载如何。

从上面信息我们可以得出如下结论:
—-数据库是一套11.2.0.2的RAC
—-Solaris 64bit环境,48c
—-每个cpu 的可用处理时间是3591.6 s, 2518.79/(59.86*48)=0.876,说明系统负载还是有些高的,但是连接数却不多。

从下面的load profile来看,逻辑读、物理读都不算太高、软解析也很低。

下面重点来看下top 5 event:


从top 5 等待来看,绝大多数event表现为IO类的等待,而且平均等待时间都比较高,均超过100ms,最高的为197ms。从这里,我们可以粗略的判断,系统IO问题较为严重,结合top 5来看,主要集中在direct path read等待,关于direct path read,主要表现为如下集中可能的情况:
—–parallel query
—-大量的disk排序
—-table 预读取操作

这个等待跟direct path write是不同的,direct path write主要表现为直接路径加载,parallel dml等操作。其次top 5 里的direct path read temp 主要表现为大量的disk temp 排序操作。

这里补充一点的是,在11gR2里面,部分全表扫描操作会被direct path read(简称DPR)所替代,当table大小超过5倍_small_table_threshold 大小时,oracle将自动决定是否使用direct path read去替代传统的全表扫描。另外其实还有一个参数_very_large_object_threshold,当表的大小超过这个参数的0.8倍时,oracle也会自动决定使用使用DPR去代替传统的全表扫描。下面是我们11gR2版本的关于这2个参数设置和描述:
_small_table_threshold —单位是block,11.2中默认是287.
_very_large_object_threshold —单位是MB,默认是500m

下面我们继续,由于这是一套rac,所以我们也关注下rac相关的信息,如下:

从上面来看,可以看到rac interconnect 交互比较低的,从buffer access信息来看,从disk中的读取比例有些高了,为39.07%,这也是前面direct path read/read temp的一个表现。

下面是ges/gcs的具体指标。

这里,我们重点关注receive和send的部分,通常来讲小于5ms认为是比较好的,小于20ms都算是可以接受的,这些信息其实没有一个明确的指标,都是根据经验来的,白鳝的dba日记中曾经提到过一些具体的指标,不过其中是参考的9i的rac文档。我从一份oracle internal的rac文档中找到了如下一些指标:

从这里来看,对于CR block小于5ms 认为是不错的,上限是10ms左右。而current block
一般在3ms和8ms被认为不错,当超过20ms则被视为异常或不可能接受了。反过来讲,如果这里指比较高,那么top 5 event里面比如会有gc相关的等待。

如果这里看到cr或current block 接受或send有异常,你可以看awr中rac相关的具体细节部分,例如如下部分:

由于这里没什么问题,所以我就不多说了,继续分析这个awr。

由于前面我们已经清楚的看到,问题集中在IO上,那么我们就来看看IO方面的细节:


可以看到1小时内,所读的block达到了1.5T,太大了。其中绝大部分是集中在对datafile的访问,tmepfile的操作有一些,相对来讲算是比较少的了。
这样来看,问题集中在应用层面了,我们来看看SQL部分。

可以看到,主要是就那几个parallel query的SQL导致的大量IO,从sql 部分信息,我没有看到Top SQL with event的信息,所以从这来看,前面单从top 5event中的direct path read怀疑可能是11gR2的特性 当表超过5倍_small_table_threshold 大小而是用direct path read来代替全表扫描是不正确的。从这里来看,就是那几个parallel query导致的direct path read,而且direct path read temp应该也是这个导致,因为sql包含大量的排序了。

刚刚网友说,他们这个库目前是每天下午6~7点都会down机,目前已经调整了应用了。我想,问题应该已经解决了,拭目以待了。

最后补充下IO类相关几个event的一些指标,比如平均等待时间超过多少ms,我们就认为有问题了。
可以参考如下表格:

说明:awr报告中还有很多其他的内容,就不说明了,例如:

例如instance activity statistics,我们可以通过里面的数据去判断数据中是否有表存在行链接或行迁移,再或者看系统回滚率是否正常、一些参数设置是否合理等等。buffer pool statistics和advisory statistics部分信息是从来判断oracle sga和pga中内存组件设置是否合理的,当然这个仅仅是参考值,而且最好是采集多份awr包括进行综合分析。后面的undo/latch/dictionary等信息就不多说了,回头有具体的案例涉及到在进行分析描述。这次就先到这里吧。转:http://www.killdb.com/2012/08/17/%e4%b8%80%e4%bb%bd11gr2-rac-awr%e6%8a%a5%e5%91%8a%e7%9a%84%e7%ae%80%e5%8d%95%e5%88%86%e6%9e%90.html

一份11gR2 rac awr报告的简单分析的更多相关文章

  1. [转]oracle awr报告生成和分析

    转自:http://blog.csdn.net/cuker919/article/details/8767328 最近由于数据库cpu占用非常高,导致VCS常常自动切换,引起很多问题. 最近学习一下数 ...

  2. Oracle AWR报告生成和性能分析

    目录 一.AWE报告生成步骤 1.1 工具选择 1.2 自动创建快照 1.3 手工创建快照 1.4 生成AWR报告 二.AWR报告分析 2.1 AWR之DB Time 2.2 AWR之load_pro ...

  3. Oracle 11g AWR 系列五:如何生成 AWR 报告?

    1.生成单实例 AWR 报告: @$ORACLE_HOME/rdbms/admin/awrrpt.sql 2.生成 Oracle RAC AWR 报告: @$ORACLE_HOME/rdbms/adm ...

  4. 极简AWR报告收集指导

    1.以oracle用户登录oracle数据库,执行如下命令登录数据库: sqlplus / as sysdba 2.运行如下命令: @?/rdbms/admin/awrrpt.sql 3.出现如下信息 ...

  5. 提取oracle awr报告

    做性能测试时有时需要分析sql的执行情况,以找出需要优化的sql,oracle数据库就提供了很好的数据库状态和sql执行情况的监控平台,数据库的监控平台可以时时的监控数据库的状态,同时还可以取监控的时 ...

  6. Oracle生成awr报告操作步骤介绍

    AWR全称Automatic Workload Repository,自动负载信息库,是Oracle 10g版本后推出的一种性能收集和分析工具,提供了一个时间段内整个系统的报表数据.通过AWR报告,可 ...

  7. Oracle AWR报告指标全解析-11011552

    1-5 Top 5 Timed EventsWaits : 该等待事件发生的次数, 对于DB CPU此项不可用Times : 该等待事件消耗的总计时间,单位为秒, 对于DB CPU 而言是前台进程所消 ...

  8. ORACLE 10g AWR报告设置总结

      1:查看.修改AWR报告快照数据的采样间隔.保存策略 SQL> COL DBID FOR 999999999999 SQL> COL SNAP_INTERVAL FOR A26 SQL ...

  9. Oracle 每天自动生成AWR报告

    经验丰富的老员工希望能够每天为数据库生成1个AWR报告,以便于后期分析数据库的性能变化,手动生成太麻烦,查了一下资料,发现可以自动生成,过程如下. 数据库环境:11gR2 RAC(双节点) AWR报告 ...

随机推荐

  1. DB2开发系列之二——SQL过程

    1.SQL 过程的结构 1)SQL过程的结构 CREATE PROCEDURE proc_name   IN, OUT, INOUT parameters   optional clauses   S ...

  2. innodb_trx, innodb_locks, innodb_lock_waits

    如果两个事务出现相互等待,则会导致死锁,MySQL的innodb_lock_wait_timeout参数设置了等待的时间限制,超时则抛异常. select @@innodb_lock_wait_tim ...

  3. HDU 1940

    //比赛的时候卡了三个点.今天卡了两个点.真心不愿意再看了. // 自己按照直线相交的思路的敲得.题意里说了不是按照final rank 给的.但是.这样就和标程输出不同. //就是觉得AC突然就不那 ...

  4. ajax缓存和编码问题

    ajax缓存问题,工作中几乎使用ajax都会碰到,虽然解决缓存问题很多,但我 一直使用常用的,方便理解的,没有多大记忆成本的,get方式的缓存问题很蛋疼,尤其是低版本IE啦,废话少说, <scr ...

  5. 给构造函数(constructor)创建对象(object)

    (来源http://www.cnblogs.com/dongjc/p/5179561.html) javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过 ...

  6. POJ 2289 Jamie's Contact Groups 二分图多重匹配 难度:1

    Jamie's Contact Groups Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 6511   Accepted: ...

  7. harbor私有镜像仓库的搭建与使用与主从复制

    harbor私有镜像仓库,私有仓库有两种,一种是harbor,一种是小型的私有仓库,harbor有两种模式,一种是主 从,一种是高可用仓库,项目需求,需要两台服务器,都有docker.ldap权限统一 ...

  8. bzoj1215

    题解: 暴力枚举每一种方案,然后hash判重 代码: #include<bits/stdc++.h> #define eps 1e-7 using namespace std; ],r[] ...

  9. Flask初级(一)创建及运行flash

    和前面的django差不多,选个类型,定义个目录. 选个模板解释器,定义一个模板文件夹名称. Create就创建成功了. 运行一下.会显示 Hello World! 最好给它换个运行环境,建个虚拟环境 ...

  10. iPad mini Retina越狱小结【2014年02月06日 - 初稿】

    Update History 2014年02月06日 - 初稿 0.引言 本来一直都没有苹果的产品除了第一代的iPod(没怎么使用最后大学送人了 @李清纯(255270520) ,巧合的是老妈学校发了 ...