摘要:ankole数据库运维平台可以对数据库进行全方位的性能分析,包括实时分析和历史回溯。在不确定是否存在性能问题时,还可以进行历史性能、TopSQL比对,让DBA对数据库的运行状态了然于胸。
1. 性能分析需求
“小甲,XX业务在报障数据库查询太慢,看一看数据库的性能呢”,“小乙,昨天晚上XX数据库主机宕了,主机检查了硬件没问题,看看宕机前数据库的压力呢,是不是压力太大造成的?”,“小丙,XX数据库前天跑批业务性能稳定吗?”这些问题,是DBA经常会被问到的,如果是检查数据库当前的性能,DBA可以登录数据库检查情况,但是想要追溯以前的性能问题,在没有运维平台的帮助下,想要快速回答这些问题,相当困难。
这里罗列了一下,在没有运维平台之前想要回答这些问题可能需要用的到相关命令和工具:sar命令、vmstat命令、OWI诊断方法、OSWatch工具、AWR、ASH等等。
Ankole数据库运维平台是如何对数据库性能进行分析的呢?
2. 数据库性能历史
DBA接手一个数据库,一般都需要掌握数据库性能历史,了解数据库性能波动的具体规律。Ankole运维平台在《系列5自助服务1》中就可以通过查看数据库实例性能了解一段时间内的性能情况,而如果需要了解长时间(比如1个月)的性能情况,则可以通过DBA工具的数据库分析来达到目的。
从这里,有经验的DBA就可以看出,ankole数据库运维平台将AWR性能快照收集起来了,通过相关指标项的折线图就可以快速了解数据库的性能历史。
在界面中通过输入不同的快照ID,就可以对多个快照进行性能比对。比如在数据库在某个快照发现性能问题,通过快照比对就可以快速确定跟昨天、前天、甚至于上个月的这一天,相同时间点的性能差异。
3. 实时性能分析
对于正在发生性能问题的数据库,ankole运维平台提供了实时性能视图来进行实时分析。比如在数据库全景视图中发现某个数据库活跃会话数比较高,通过实时性能视图就可以方便地看到数据库的性能细节。
实时性能视图对数据库性能数据采集频率较高,该性能视图自动刷新,通过双击各个性能指标视图,可以跳转查看更长时间维度的历史性能曲线。当发生数据库主机异常宕机,无法从AWR中获取宕机时间点的数据库性能数据时,就可以通过这些历史数据,检查问题发生时,数据库是否存在性能问题。
4. 数据库性能比对
对于固定时间跑批量业务的数据库(比如运营商月初出帐),在事后需要判断本月跑批性能与上月相比是否存在问题,这就需要对数据库性能指标进行跨月或跨天比对。如果仅仅选取某个AWR报告进行对比,那就比较片面,如果选取长时间范围的AWR比对,那就完全忽略了性能波动。在ankole数据库运维平台中,可以对数据库运行的性能历史进行快速比对。如下是数据库月初跑批业务的比对报告:
以上报告,是比对10月1日与11月1日 0点到上午9点数据库的性能情况,比对内容包括:Redo量、物理读、物理写、逻辑读、SQL执行数、硬解析、提交数、活跃会话数、CPU使用率、IO响应时间等。通过这些数据库指标历史的全方位比对,就可以判定执行批量业务时数据库性能是否稳定。
5. 历史TopSQL比对
在《系列六 自助服务2》中,通过TopSQL的桑基图可以很方便地看到数据库最近的TopSQL历史,但是如果想要比对两个月同一时间批量业务的TopSQL情况,或者是数据库迁移后新老数据库TopSQL是否发生变化,又该如何解决呢?
在ankole数据库运维平台的DBA工具中,提供了TopSQL比对,可以对任意一个(或两个)数据库的TopSQL进行性能分析比对,比对维度有:CPU、逻辑读、执行时间,比对结果如下:
通过TopSQL比对,就可以回答跑批业务或者数据库迁移后,SQL执行性能稳定或否,进而对性能差异较大的TopSQL进一步分析。
6. 实时TopSQL分析
如果要检查当下数据库有哪些会话执行较慢、耗费较大,可以在ankole运维平台的Top会话中来分析,在Top会话中的分析维度有:CPU、物理读、逻辑读、硬解析等
根据耗费较高会话执行的SQL_ID再进一步分析SQL。
7. 总结
Ankole数据库运维平台提供了丰富的性能分析比对方法,通过这些工具,对数据库当前或者历史是否存在性能问题提供了充分的解释,让DBA更加从容应对。