轻松精通数据库管理之道——运维巡检之八(性能)

SQL专家云    2016-09-23

前言

做好日常巡检是数据库管理和维护的重要步骤,而且需要对每次巡检日期、结果进行登记,同时可能需要出一份巡检报告。 本系列旨在解决一些常见的困扰:

  • 不知道巡检哪些东西
  • 不知道怎么样便捷体检
  • 机器太多体检麻烦
  • 生成报告困难,无法直观呈现结果

性能是系统好坏的重要指标之一,而性能问题可能是因为某一个小点而引起(如参数配置、作业配置、结构设计、软硬件环境等)。前面七篇文章从不同的方面对系统进行了巡检,本篇将介绍系列巡检中最重要的一项(性能)。

性能基线

性能巡检的指标非常多,情况变化也很大,所以对自己的系统应该建立起一套完整的性能评价模型,何为性能评价模型,就是当系统进入一个平稳期,经过了优化,系统性能已经达到了一个稳定值,那么我们可以用这个稳定的项目作为后期巡检,及功能上线,结构变更等操作性能对比的基线。 在【体检项目】页我们可以使用一个比较稳定的体检项目的历史版本作为性能基线,为了区分其他项目可以重命名为”性能基线“。

基于性能基线对比

总体指标

在【概览】页我们可以从整体查看系统的性能现状,主要从【查询语句-执行时间】、【会话-等待类型】、【检查项】等,与基线进行对比。查看巡检中的指标是否与基线指标有较大的差异。 例:当巡检时【查询语句-执行时间】中各个时间段的慢语句数量明显高于基线,那么可以说明系统中的语句可能有变慢的情况。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

其他指标

数据库的性能巡检指标很多,可以根据自己系统的情况选择,具体指标及优化方式请参见:性能诊断系列

总结

前面的一些巡检项及配置项,在管理比较规范的系统下,一般并不会出现什么问题,而性能不同,这是一个受很多因素影响,并且比较容易产生问题的项。同时性能对系统的总要程度是不言而喻的,做好前面的巡检也是性能稳定的保证。