轻松精通数据库管理之道——运维巡检之八(性能)
前言
做好日常巡检是数据库管理和维护的重要步骤,而且需要对每次巡检日期、结果进行登记,同时可能需要出一份巡检报告。
本系列旨在解决一些常见的困扰:
- 不知道巡检哪些东西
- 不知道怎么样便捷体检
- 机器太多体检麻烦
- 生成报告困难,无法直观呈现结果
性能是系统好坏的重要指标之一,而性能问题可能是因为某一个小点而引起(如参数配置、作业配置、结构设计、软硬件环境等)。前面七篇文章从不同的方面对系统进行了巡检,本篇将介绍系列巡检中最重要的一项(性能)。
性能基线
性能巡检的指标非常多,情况变化也很大,所以对自己的系统应该建立起一套完整的性能评价模型,何为性能评价模型,就是当系统进入一个平稳期,经过了优化,系统性能已经达到了一个稳定值,那么我们可以用这个稳定的项目作为后期巡检,及功能上线,结构变更等操作性能对比的基线。
在【体检项目】页我们可以使用一个比较稳定的体检项目的历史版本作为性能基线,为了区分其他项目可以重命名为”性能基线“。
基于性能基线对比
总体指标
在【概览】页我们可以从整体查看系统的性能现状,主要从【查询语句-执行时间】、【会话-等待类型】、【检查项】等,与基线进行对比。查看巡检中的指标是否与基线指标有较大的差异。
例:当巡检时【查询语句-执行时间】中各个时间段的慢语句数量明显高于基线,那么可以说明系统中的语句可能有变慢的情况。CPU、内存、IO等系统指标压力升高,说明你系统的压力变大,变大的原因可能因为有新增的不优化语句或硬件资源出现问题。
注:基线与巡检的收集时间应保证相同或小幅差异。如果差异很大,可能不具有说明性。
具体指标
计数器
- 系统计数器
- 数据库计数器
查询语句
在巡检中,我们可以主要关注:
- 慢语句数量
- 执行次数top 10
- 持续时间top 10
- CPU消耗top 10
- 读次数 top 10
- 写次数top 10
- 影响行数top 10
系统等待与阻塞
在巡检中,我们可以主要关注:
- 等待的类型及数量分布
- 等待时间分布
- 等待次数top 10
- 等待时间top 10
- CPU时间top 10
- 逻辑读次数 top 10
- 物理读次数top 10
- 物理写top 10
其他指标
数据库的性能巡检指标很多,可以根据自己系统的情况选择,具体指标及优化方式请参见:性能诊断系列
总结
前面的一些巡检项及配置项,在管理比较规范的系统下,一般并不会出现什么问题,而性能不同,这是一个受很多因素影响,并且比较容易产生问题的项。同时性能对系统的总要程度是不言而喻的,做好前面的巡检也是性能稳定的保证。