使用新云监控2.0监控DB2性能
今天从论坛看到一篇非常有价值的文章:《民生银行十位数据库专家谈如何透过性能优化看系统架构的合理性》,从DB2业内人士角度来看,这篇文章不愧是十位专家的精华之作,从DB2出繁杂的性能指标点中,清晰提炼出了DB2数据库性能监控的几个最重要的点:
1)耗时最长的SQL的平均执行时间。
2)数据库的平均CPU利用率。
3)CPU的执行时间、IO等待时间和锁等待时间。
4)平均I/O响应时间。
5)物理读和逻辑读的百分比。
6)有效索引读的百分比。
7)有效行读的百分比。
那么,问题来了,如何在DB2中快速准确的来监控这些点呢?这些点分别是什么,分别代表了什么?在此,我们会借助新云监控这个工具来分析这几个点。新云监控是一款图形化的专业DB2监控工具,不仅可以实时动态监控DB2性能,而且可以借其分析DB2所有的历史信息。当监控到数据库指标异常时,还会主动告警,并发邮件提醒,非常简单易用。
下面我们针对这些点,在新云监控上一个个来看。
1. 耗时最长的SQL的平均执行时间。
一说到性能,大家首先想到的SQL的运行时间,这是性能最直观也是最重要的体现。如何来获取这个SQL的平均时间呢?找到耗时最长的SQL后,又该如何操作呢?
新云监控的topsql,轻松一点就列出来了:
现在拿到这个sql了,我们一般需要来分析其读取的行,锁等一些情况,点击左侧的SQLID,我们就可以轻松看到这个SQL读取的数据量级、CPU和锁的情况。
再接下来,点击查询计划,仔细分析其DB2查询优化器,观察其cost,有针对性地来优化SQL。
通过新云监控的这些步骤,就可以轻松来监控和调优耗时最长的SQL的平均执行时间。
2. 数据库的平均CPU利用率。
CPU的平均利用率,是从整体来判断,我们这个数据库是否有CPU瓶颈。我们往往需要考虑的是闲时利用率和忙时利用率,甚至我们还想去看CPU的实时利用率。新云监控都通过图表直观展现出来了。
实时CPU利用率:
过去一天的CPU利用率, 我们可以轻松观察到不同时段的系统负载。当然我们还可以去观察一个月,甚至自定义时间段来观察。
历史数据对我们性能监控来说是非常有意义的,我们突然发现系统的性能急剧下降,我们就可以通过观察历史的变化,报告CPU、IO、缓冲区、锁等待这些信息的变化,来快捷分析性能下降的原因,非常有助于我们有针对性的去调优。
3. CPU的执行时间、IO等待时间和锁等待时间。
新云监控对数据库总时间消耗进行了分类展示,如下图中我们看到,总等待时间过长,达到了26.5%。我们需要对其进行分析,都是发生了什么等待。在数据库等待时间分布图中,清晰展示了每一类等待的花销:IO等待、锁等待等等。在这个图表中,其它等待占比很高是因为此系统为pureScale测试环境,用的是千兆网络,性能较差。
4. 平均I/O响应时间。
根据大多数客户经验,I/O响应时间往往会成为我们系统的瓶颈,需要我们重点关注。其中最重要的一个指标是:平均物理读时间,在使用企业级的磁盘阵列中,一般我们要求其小于5ms。
5. 物理读和逻辑读的百分比
这个指标其实就是缓冲区命中率,毫无疑问,这个是非常非常重要的指标。
6. 有效索引读的百分比和有效行读的百分比。
这两个指标是用来评估索引是否合理和高效。
总结
通过新云监控,我们可以非常轻松监控这些性能关键指标的实时和历史数据,并通过图表非常直观的展现出来。新云监控还会对这些指标发出主动告警,大大提高系统的运行稳定,更多的功能期待大家去挖掘哈,有兴趣的朋友可以通过这个连接去查看在线demo和申请试用:http://www.newdt.cn/list-31.html