借助AWR报告分析解决oracleCPU过高的问题
原文地址:http://www.cnblogs.com/crystal-guoguo/p/4213458.html
简介:
在oracle数据库中,有两个非常实用的自带监控工具EM(Enterprise Manager)和AWR(Automatic Workload Repository)。其中,通过AWR报告可以生成易于阅读的监控报告,可协助进行性能问题的诊断和分析。
本期将介绍一些AWR报告的基本使用和在性能问题诊断中的应用。
什么是AWR:
从oracle 10g开始,使用名为GATHER_STATS_JOB的计划任务来收集AWR的统计数据,AWR报告中收集了许多不同的统计数据,包括等待事件、各种系统级和会话级的统计数据及使用较多资源的SQL语句相关的信息。
在默认情况下,Oracle数据库后台进程会以一定间隔(一小时)收集系统当前状态镜像,并且保存在数据库中,默认的保留时间是8天,此策略可根据实际情况进行调整。在特殊的时间点,如测试执行前后,可以通过手动创建快照的方式来增加快照。在生成AWR报告时,通过快照点来选择生成指定时间段的统计报告。
AWR的生成:
一、手动产生AWR报告
1)在Oracle数据库服务器上,用SYSDBA身份登入sqlplus。
2)运行脚本
在sqlplus中输入awrrpt执行命令。
@?/rdbms/admin/awrrpt.sql
3)输入报告参数
a) 选择要生成AWR报告的类型,可选择text类型和html类型,输入html(默认)。
b)报告涉及天数范围
选择要生成报告的日期是多少天的记录。输入天数后,(输入1,则表示要生成今天0点开始到目前的时间段内的报告;输入2,则表示要生成昨天0点开始到现在的时间段内的报告;以此类推。)界面显示出改时间段的数据表格,每个时间点对应一个snap id,间隔时间oracle默认为1小时。
c)输入要生成报告的开始和结束snap编号。
d)确定报告名称。
不输入直接回车,系统会自动生成一个默认名字的报告。
e)生成报告。
提示报告输出结束后,AWR报告存放在指定目录(用sqlplus登录oracle数据库的目录)下 。
案例分析:
现象:
某交易单场景,发现数据库CPU平均使用率达近90%。本案例数据库为12Core,从Instance CPU上看,oracle占用的CPU占服务器中CPU资源(89.9%)的99.5%。
分析过程:
为了定位数据库CPU过高的问题,测试过程中使用AWR报告,观察数据库的使用情况:
1)先整体查看报告头信息(header)和性能指标(Buffer Nowait,Buffer Hit,Library Hit,Execute to Parse,Parse CPU to Parse Elapsd,Redo NoWait )。
2)看Time Model Statistics,在整个sql执行时间(sql execute elapsed time)时间为15499秒中,解析时间(parse time elapsed)用了26秒,硬解析时间(hard parse elapsed time)用了26 秒,可知解析时间是花的很少的,所以可以判断出,sql的解析没有成为性能瓶颈,进一步推测,sql在获取数据的过程中遇到了瓶颈。
4)关注下负载的概要信息。数据库层面的TPS仅为1.3,TPS较低。
5)进一步分析发现,从SQL ordered by CPU Time来看,SQL id 为cjnzff37c9gr3和cq32agu0qkpd8的SQL语句,执行次数多,耗CPU较高。
6)针对这2个SQL语句,执行命令,获取sql 执行计划。(需输入SQL id)
@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql
7)通过查看执行计划,对CTR_LOAN_CONT的表读取占用的cost较多,需要根据索引读取196000行数据。其中CTR_LOAN_CONT表为1200多万条数据,占用空间5888m,统计更新也较准确。部分计划如下:
8)查看 Segments by Logical Reads,96%的逻辑读都为CTR_LOAN_CONT 表的读取。最终定位为,数据库CPU过高为SQL导致。
处理方法:
(1)转移数据库服务器的一部分逻辑处理到应用服务器。即将数据库中的一些通过SQL判断的逻辑通过应用代码进行实现,从而适当的降低数据库服务器的复杂计算。
(2)针对XX模块仍然采用视图,但在视图中添加第三方平台作为条件过滤,并将归并方法UNION(表链接后筛选掉重复的记录再排序)改为UNION ALL(无排序去重)。
调优后效果:
(1)CTR_LOAN_CONT的表读取占用的cost从15359降低到276。
(2)数据库服务器的CPU平均使用率从89.9%降低到11.6%。
借助AWR报告分析解决oracleCPU过高的问题的更多相关文章
- 借助AWR报告分析解决oracleCPU过高的问题(转)
原文地址:http://www.cnblogs.com/crystal-guoguo/p/4213458.html 简介:在oracle数据库中,有两个非常实用的自带监控工具EM(Enterprise ...
- [原创-性能调优]借助AWR报告分析解决oracleCPU过高的问题
简介:在oracle数据库中,有两个非常实用的自带监控工具EM(Enterprise Manager)和AWR(Automatic Workload Repository).其中,通过AWR报告可以生 ...
- AWR报告分析
AWR报告分析 awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体 ...
- AWR报告分析案例及命令(收集)
AWR报告分析案例(收集) 循序渐进解读Oracle AWR性能分析报告 AWR报告分析之一:高 DB CPU 消耗的性能根源 生成AWR报告命令: 1)连接数据库:sqlplus / as sysd ...
- Oracle的AWR报告分析
* 定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告 ...
- AWR报告分析解读
http://blog.csdn.net/weiwangsisoftstone/article/details/7614430 1.AWR报告头信息 DB Name :数据库名字 DBid: 数据库i ...
- 理论实践:循序渐进理解AWR细致入微分析性能报告
1. AWR 概述 Automatic Workload Repository(AWR) 是10g引入的一个重要组件.在里面存贮着近期一段时间内(默认是7天)数据库活动状态的详细信息. AWR 报告是 ...
- Oracle AWR报告生成和性能分析
目录 一.AWE报告生成步骤 1.1 工具选择 1.2 自动创建快照 1.3 手工创建快照 1.4 生成AWR报告 二.AWR报告分析 2.1 AWR之DB Time 2.2 AWR之load_pro ...
- ORACLE调优深入理解AWR报告(转)
AWR报告分析可从以下几点入手: (1).Oacle主机资源开销分析及负载情况 (2).oracle top信息分析 Top 10 Foreground Events by Total Wait Ti ...
随机推荐
- Nacos 权限控制介绍及实战
方案背景 Nacos自开源依赖,权限控制一直需求比较强烈,这也反应了用户需求将Nacos部署到生产环境的需求.最新发布的Nacos 1.2.0版本已经支持了服务发现和配置管理的权限控制,保障用户安全上 ...
- dubbo学习实践(1)之管理控制台Dubbo-admin部署
1.Docker拉取现有镜像,构建Dubbo-admin 拉取镜像,这里使用chenchuxin/dubbo-admin docker pull chenchuxin/dubbo-admin 注册中心 ...
- Build Puppet Clusters with Vagrant
$ cd ~/docs/propuppetex/chapter3 $ cat Vagrantfile Vagrant.configure(VAGRANTFILE_API_VERSION) do |co ...
- k8s之数据存储-高级存储
PV和PVC 前面已经学习了使用NFS提供存储,此时就会要求用户会搭建NFS系统,并且会在yaml配置nf's,由于k8s支持的存储系统有很多,要求客户全部掌握,显然不现实.为了能够屏蔽底层存储实现的 ...
- git根据项目地址使用不同代理服务器
问题 由于公司访问GitHub只能走代理,但是内网gitlab服务器又不能走代理. 因此想找到一种方案,可以支持git自动根据项目地址使用不同代理. 方案 如下所示,可以指定GitHub地址使用指定的 ...
- CentOS6与CentOS7的几点区别
重新安装了一个CentOS7,顺便整理一下与自己之前用的CentOS6的区别 CentOS6以下简称c6 CentOS7以下简称c7 1.关于文件系统: c6 6.x使用EXT4,EXT4单个文件系 ...
- Linux 进程间传递文件描述符
文章目录 文件描述符 文件数据结构 共享文件 UNIX域socket实现传递文件描述符 进程间传递打开的文件描述符,并不是传递文件描述符的值.先说一下文件描述符. 文件描述符 对内核来说,所有打开的文 ...
- STM32—驱动DHT11数字温湿度传感器
文章目录 DHT11模块简介 DHT11数据传输 DHT11通信时序 代码实现 相关引脚初始化 复位模块 判断响应模块 读取数据包模块 DHT11模块简介 DHT11数字温湿度传感器,用来测量环境的温 ...
- 基于Python的决策树分类器与剪枝
作者|Angel Das 编译|VK 来源|Towards Data Science 介绍 决策树分类器是一种有监督的学习模型,在我们关心可解释性时非常有用. 决策树通过基于每个层次的多个问题做出决策 ...
- @ControllerAdvice注解(全局异常捕获)
背景 @ControllerAdvice 注解 通常用于定义@ExceptionHandler, @InitBinder和@ModelAttribute 适用于所有@RequestMapping方法的 ...