openGauss数据库核心技术:可维护性

WDR是一个基于性能快照的工具,通过对比不同时间点的数据,诊断数据库内核性能问题,提供SUMMARY和DETAIL级别的诊断报告,涵盖了多维度性能指标。此外,它还支持一键式收集诊断信息和慢SQL诊断,有助于DBA快速定位和解决问题。
摘要由CSDN通过智能技术生成

可维护性

支持WDR诊断报告

WDR(Workload Diagnosis Report)基于两次不同时间点系统的性能快照数据, 生成这两个时间点之间的性能表现报表,用于诊断数据库内核的性能故障。

WDR性能快照数据存储在postgres库的snapshot schema下,默认的采集和保存策略为:

  • 每小时采集一个快照(wdr_snapshot_interval=1h)。
  • 保留8天(wdr_snapshot_retention_days=8)。

WDR主要依赖两个组件:

  • SNAPSHOT性能快照:性能快照可以配置成按一定时间间隔从内核采集一定量的性能数据,持久化在用户表空间。任何一个SNAPSHOT可以作为一个性能基线,其他SNAPSHOT与之比较的结果,可以分析出与基线的性能表现。
  • WDR Reporter:报表生成工具基于两个SNAPSHOT,分析系统总体性能表现,并能计算出更多项具体的性能指标在这两个时间段之间的变化量,生成SUMMARY 和DETAIL两个不同级别的性能数据。如表1表2所示。

表 1 SUMMARY级别诊断报告

诊断类别

描述

Database Stat

主要用于评估当前数据库上的负载和IO状况,负载和IO状况是衡量TP系统最重要的特性。

包含当前连接到该数据库的session,提交、回滚的事务数,读取的磁盘块的数量,高速缓存中已经发现的磁盘块的次数,通过数据库查询返回、抓取、插入、更新、删除的行数,冲突、死锁发生的次数,临时文件的使用量,IO读写时间等。

Load Profile

从时间、IO、事务、SQL几个维度评估当前系统负载的表现。

包含作业运行elapse time、CPU time,事务日质量,逻辑和物理读的量,读写IO次数、大小,登入登出次数,SQL、事务执行量,SQL P85、P90响应时间等。

Instance Efficiency Percentages

用于评估当前系统的缓存的效率。

主要包含数据库缓存命中率。

Events

用于评估当前系统内核关键资源,关键事件的性能。

主要包含数据库内核关键时间的发生次数,时间的等待时间。

Wait Classes

用于评估当前系统关键事件类型的性能。

主要包含数据内核在主要的等待事件的种类上的发布:STATUS、LWLOCK_EVENT、LOCK_EVENT、IO_EVENT。

CPU

主要包含CPU在用户态、内核态、Wait IO、空闲状态下的时间发布。

IO Profile

主要包含数据库Database IO次数、Database IO数据量、Redo IO次数、Redo IO量。

Memory Statistics

包含最大进程内存、进程已经使用内存、最大共享内存、已经使用共享内存大小等。

表 2 DETAIL 级别诊断报告

诊断类别

描述

Time Model

主要用于评估当前系统在时间维度的性能表现。

包含系统在各个阶段上消耗的时间:内核时间、CPU时间、执行时间、解析时间、编译时间、查询重写时间、计划生成时间、网络时间、IO时间。

SQL Statistics

主要用于SQL语句性能问题的诊断。

包含归一化的SQL的性能指标在多个维度上的排序:Elapsed Time、CPU Time、Rows Returned、Tuples Reads、Executions、Physical Reads、Logical Reads。这些指标的种类包括:执行时间、执行次数、行活动、Cache IO等。

Wait Events

主要用于系统关键资源、关键时间的详细性能诊断。

包含所有关键事件在一段时间内的表现,主要是事件发生的次数、消耗的时间。

Cache IO Stats

用于诊断用户表和索引的性能。

包含所有用户表、索引上的文件读写、缓存命中。

Utility status

用于诊断后端作业性能。

包含页面操作、复制等后端操作的性能。

Object stats

用于诊断数据库对象的性能。

包含用户表、索引上的表、索引扫描活动,insert、update、delete活动,有效行数量,表维护操作的状态等。

Configuration settings

用于判断配置是否有变更。

包含当前所有配置参数的快照。

应用价值:

  • WDR报表是长期性能问题最主要的诊断手段。基于SNAPSHOT的性能基线,从多维度做性能分析,能帮助DBA 掌握系统负载繁忙程度,各个组件的性能表现,性能瓶颈。
  • SNAPSHOT也是后续性能问题自诊断和自优化建议的重要数据来源。

支持一键式收集诊断信息

提供多种套件用于捕获、收集、分析诊断数据,使问题可以诊断,加速诊断过程。能根据开发和定位人员的需要,从生产环境中将必要的数据库日志、数据库管理日志、堆栈信息等提取出来,定位人员根据获得信息进行问题的定界定位。

一键式收集工具,根据生产环境中问题的不同,从生产环境中获取不同的信息,从而提高问题定位定界的效率。用户可以通过改写配置文件,收集自己想要的信息:

  • 通过操作系统命令收集操作系统相关的信息
  • 通过查询系统表或者视图获得数据库系统相关的信息
  • 数据库系统运行日志和数据库管理相关的日志
  • 数据库系统的配置信息
  • 数据库相关进程产生的Core文件
  • 数据库相关进程的堆栈信息
  • 数据库进程产生的trace信息
  • 数据库产生的redo日志文件xlog
  • 计划复现信息

慢SQL诊断

慢SQL能根据用户提供的执行时间阈值,记录所有超过阈值的执行完毕的作业信息。

历史慢SQL提供表和函数两种维度的查询接口,用户从接口中能查询到作业的执行计划,开始、结束执行时间,执行查询的语句,行活动,内核时间,CPU时间,执行时间,解析时间,编译时间,查询重写时间,计划生成时间,网络时间,IO时间,网络开销,锁开销、等待事件等。所有信息都是脱敏的。

慢SQL提供给用户对于慢SQL诊断所需的详细信息,用户无需通过复现就能离线诊断特定慢SQL的性能问题。表和函数接口方便用户统计慢SQL指标,对接第三方平台。

主备机均支持慢SQL诊断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值