【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦!
一般来说,当检测到机能问题时,我们会收集覆盖了产生问题的时光段的AWR申报-然则最好只收集覆盖1个小不时光段的AWR申报-如不雅时光过长,那么AWR申报就不克不及很好的反竽暌钩出问题地点。
还应当收集一份没有机能问题的时光段的AWR申报,作为一个参照物来比较有问题的时光段的AWR申报。这两个AWR申报的时光段应当是一致的,比如都是半个小时的,或者都是一个小时的。
Interpretation
在处理机能问题时,我们最存眷的是数据库正在等待什么。
至于8ms是快照样慢取决于底层的硬件设备;一般来讲小于20ms的都可以认为是可以接收的。
当过程因为某些原因不克不及进行操作时,它须要等待。花费时光最多的等待事宜是我们最须要存眷的,因为降低它,我们可以或许获得最大年夜的好处。
Top 5 Timed Events
正如前面提到的,"Top 5 Timed Events"是AWR申报中最重要的部分。它指出了数据库的sessions花费时光最多的等待事宜,如下:
Top 5 Events部分包含了一些跟Events(事宜)相干的信息。它记录了这时代碰到的等待的总次数,等待所花费的总时光,每次等待的平均时光;这一部分是按照每个Event占总体call time的百分比来进行排序的。
根据Top 5 Events部分的信息的不合,接下来我们须要检查AWR申报的其他部分,来验证发明的问题或者做定量分析。等待事宜须要根据申报期的持续时光和当时数据 库中的并发用户数进行评估。如:10分钟内1000万次的等待事宜比10个小时内的1000万等待更有问题;10个用户引起的1000万次的等待事宜比 10,000个用户引起的雷同的等待要更有问题。
就像膳绫擎的例子,将近60%的时光是在等待IO相干的事宜。
- 事宜"db file scattered read"一般注解正在做由全表扫描或者index fast full scan引起的多块读。
- 事宜"db file sequential read"一般是由不克不及做多块读的操作引起的单块读(如读索引)
其他20%的时光是花在应用或等待CPU time上。过高的CPU应用经常是机能不佳的SQL引起的(或者这些SQL有可能用更少的资本完成同样的操作);对于如许的SQL,过多的IO操作也是一个症状。关于CPU应用方面,我们会在之后评论辩论。
在以上基本上,我们将查询拜访是否这个等待事宜是有问题的。如有问题,解决它;若是正常的,检查下个等待事宜。
过多的IO相干的等待一般会有两个重要的原因:
- 数据库做了太多的读操作
- 每次的IO读操作都很慢
Top 5 Events部分的显示的信息会赞助我们检查:
- 是否数据库做了大年夜量的读操作:
膳绫擎的图显示了在这段时光里两类读操作都分别大年夜于1000万,这些操作是否过多取决于申报的时光是1小时或1分钟。我们可以检查AWR申报的elapsed time
如不雅这些读操作确切是太多了,接下来我们须要检查AWR申报中 SQL Statistics 部分的信息,因为读操作都是由SQL语句提议的。
- 是否是每次的IO读操作都很慢:
膳绫擎的图显示了在这段时光里两类读操作平均的等待时光是小于8ms的
如上图,我们关怀Av Rd(ms)的指标。如不雅它高于20ms并且同时有很多读操作的,我们可能要开端大年夜OS的角度查询拜访是否有潜在的IO问题。
- 虽 然高"db file scattered read"和"db file sequential read"等待可所以I / O相干的问题,然则很多时刻这些等待也可能是正常的;实际上,对一个已经机能很好的数据库体系,这些等待事宜往往在top 5等待事沂攀里,因为这意味着您的数据库没有那些真正的“问题”。
接下来就须要经由过程AWR来检查这些top SQL是否可以进一步的调优,我们可以查看AWR申报中 SQL Statistics 的部分.
膳绫擎的例子显示了20%的时光花在了等待或者应用CPU上,我们也须要检查 SQL statistics 部分来进一步的分析。
须要留意,接下来的分析步调取决于我们在TOP 5部分的发明。在膳绫擎的例子里,3个top wait event注解问题可能与SQL语句履行筹划不好有关,所以接下来我们要去分析"SQL Statistics"部分。
一般来讲,如不雅数据库机能很慢,TOP 5等待事沂攀里"CPU", "db file sequential read" 和"db file scattered read" 比脚绫趋显(不管它们之间的次序若何),我们老是须要检查Top SQL (by logical and physical reads)部分;调用SQL Tuning Advisor或者手工调优这些SQL来确保它们是有效力的运行。
推荐阅读
【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦! 索引设计是数据库设计中比较重要的一个环节,对数据库的机能个中至关重要的感化,然则索引的设计却竽>>>详细阅读
本文标题:如何使用AWR报告来诊断数据库性能问题
地址:http://www.17bianji.com/lsqh/37579.html
1/2 1