【数据库开发】探索数据库智能运维之数据库关键运行指标

news/2024/12/24 11:34:31/文章来源:https://www.cnblogs.com/o-O-oO/p/18627047

随着金融业务转型步伐加快、业务连续性要求趋严,对金融业信息系统运行的稳定性要求日益提升。数据库作为信息系统中关键技术基础,如何应用数据库海量运行数据,提升运行指标数据观测性,及时发现数据库运行潜在风险,是G行数据库管理团队一直探索的课题。

数据库管理团队负责G行所有生产数据库的运维,虽然数据库领域相关监控趋于完善,数据库巡检实现了从脚本巡检到使用管理台巡检的改进,但面对近千套生产数据库每天产生的海量运行数据,如何提升巡检效率,实现数据横向、纵向对比,提高巡检数据精度,优化运行观测性,及时准确发现生产数据库运行的潜在隐患,仍具有一定的挑战。

本文以数据库关键运行指标为切入点,探索智能运维在数据库领域中的应用。

探索智能运维思路

为了弥补传统巡检及监控的不足,G行探索利用智能运维平台对生产数据库关键指标数据进行采集和分析,从中识别有价值的数据,力求实现对数据细粒度采集、偏离基线精准预警。

数据采集:通过统一的采集方案、采集策略,对数百套数据库实例运行中的关键性能指标进行细粒度采集,如活动会话数、QPS、TPS、硬解析、日志落盘时间、锁等待、索引分裂等指标,也可根据不同数据库灵活定制个性化采集项。

趋势分析:通过智能运维平台对采集的数据运行趋势及研判,优化数据存储策略,并以图表等形式展示运行状态,相比于传统模式下的手工巡检,数据更为直观。

风险预警:借助智能算法分析对数据进行异常检测,配置适当的阈值预警,当监控指标超过预设阈值时,及时发现数据库运行中的异常波动,自动发出预警通知。通过对生产数据库关键运行数据的实时采集,针对不同数据库业务类型的差异、联机交易和批量时间段的区别,配置适合的预警基线,实现对生产数据库运行态的实时监控与预警。

关键指标解读及智能运维应用

数据库运行指标众多,可分为资源、容量、性能、连接管理、SQL质量、异常事件等六个大类。

1.资源:包括CPU、内存、操作系统大页、磁盘性能(IOPS、吞吐量)等;

2.容量:包括磁盘空间、表空间、归档空间、序列使用率等;

3.性能:包括数据库活动会话、QPS、TPS、数据库内存管理、sql执行计划跳变等;

4.连接管理:用户并发连接数、是否存在短连接等;

5.SQL质量:硬解析、过长的sql语句、不合适的分组、排序等;

6.异常事件:内存争用、锁、索引分裂、过多的全表扫描等;

上述运行指标间彼此依赖,相互影响,任何指标的异常都可能影响生产数据库运行的效率及稳定性,那么究竟哪些需要我们重点关注,各个指标间的意义如何,造成的影响有哪些,接下来利用智能运维平台来对一些关键指标进行分析。

1.数据库活动会话(AAS)

数据库活动会话指的是当前正在执行操作或处于等待状态的会话,可能是正在执行SQL语句、等待资源(如CPU、内存、磁盘I/O)或进行其他数据库操作的会话,是数据库运行态描述、生产问题排查的切入点。应长期监控数据库的活动会话,观察数据库一段时间内活动会话运行趋势,如下图所示:

【图1】 数据库活动会话运行趋势

蓝色实线表示某个时间段内该数据库实时的活动会话数,蓝色阴影部分表示历史上相同时点活动会话数曾达到的波峰和波谷,红色圆点表示该时点活动会话数突破了历史峰值。

通常,在一个平稳运行的系统中,某个时间段内其活动会话数所呈现出的现象是在一个特定的区间内波动,根据该指标在联机业务和批量时段的运行特性,结合应用系统交易量趋势进行分析,对超出阈值范围的红色圆点部分应及时发现、分析、处理异常会话,如长时间运行的SQL语句、锁等待等,需要对活动会话偏离基线的现象制定合理的监控策略,及时发现数据库运行的异常情况,为管理员巡检和问题分析提供准确信息,以避免这些异常会话对数据库性能造成潜在的运行风险。

2.数据库每秒执行sql数(QPS)

反映数据库服务器每秒处理查询请求的数量,是衡量数据库性能的关键指标之一,高QPS意味着数据库能够在单位时间内处理大量的查询请求,可满足高并发的业务需求,该指标可帮助管理员了解数据库的负载情况,以便合理的规划硬件资源、调整数据库配置等,需要对QPS波动范围进行长期跟踪,如下图所示:


【图2】 数据库QPS

对QPS大幅偏离基线的时段进行深入分析,如上图时段数据库QPS峰值达到66万,并持续5分钟,短期内大幅增加了数据库压力,需要结合业务特性进行排查,为后续批量、数据库设计优化提供依据,减少在联机高峰时段数据库的压力。

3.数据库每秒事务数(TPS)

事务是数据库中的基本操作单位,具有原子性、一致性、隔离性、持久性的特性。该指标用于表示系统在单位时间内处理的事务数,受系统硬件诸如CPU、光纤链路、存储性能、等因素影响,高性能的CPU可以更快的处理事务,高效的存储性能可提升数据库日志落盘的效率,确保数据的完整性。对TPS波动范围进行长期跟踪,如下图所示:

【图2】 数据库TPS

管理员应长期关注业务交易量情况,识别业务高、低峰的周期,为评估数据库容量提供数据支持,为系统容量扩充提供依据。

4.数据库每秒硬解析(Hard Parse)

硬解析是指在执行SQL时,在库缓存中找不到可以重用的解析树和执行计划,而不得不重新解析SQL并生成相应的子游标的过程。这个过程相对耗时,它包括了语法检查、语义检查、查询转换以及根据统计信息生成执行计划等多个步骤。

硬解析对数据库性能的影响主要体现在以下几个方面:

增加CPU负担:硬解析过程中需要进行大量的计算和比较,这会增加CPU的负担。

增加内存消耗:每次硬解析都会生成新的游标和执行计划,需要消耗内存资源。

降低系统性能:如果数据库中存在大量的硬解析,那么系统的整体性能将会受到影响,大量的CPU和内存资源因被用于sql硬解析,而不是用于执行实际的数据库操作。

需要关注各个时段数据库中硬解析情况,如下图所示:

【图3】 数据库硬解析情况

某系统凌晨批量时段,在长达2分钟的时间内,硬解析均值达到400/每秒,峰值突破了1000/每秒,需及时找出导致硬解析高的sql语句,并使用绑定变量来降低硬解析次数,规避硬解析对数据库内存的冲击,对提高数据库的性能和稳定性具有重要意义。

5.数据库Redo日志生成量

采集生产数据库每天各个时段归档日志生成情况,识别联机交易高峰、批量高峰时段归档日志生成量,制定合适的归档日志备份和清理任务。如下图所示:

【图4】 各个时段Redolog生成量

在一个完整交易周期,对各个时段Redolog生成量进行采集和分析,由上图可见联机交易时段Redolog产生的峰值在10点,联机交易均值约为25M/秒,压力比较均衡,但批量时段的峰值需要特殊关注,如每日20点左右的批量,Redolog产生的峰值突破70M/秒,持续时间约10分钟,短期内将给数据库日志写入造成极大的压力,如果使用了日志层面的Primary-Standby架构,主库Redolog瞬时的写入压力高也将造成主从的同步延迟,影响主从之间数据的一致性,如果Standby备库承担实时读交易,会影响交易的准确性,针对这种情况需要从Redolog大小、日志组数量、存储的写入压力、光纤链路、网络带宽等全方位进行评估,避免出现因日志写入量大而影响联机交易。

G行后续将利用智能运维平台在横向、纵向两个维度进一步加大探索力度,在横向方面,全面覆盖行内重要系统数据库运行指标的采集与趋势分析;在纵向方面,建立动态数据预警基线;针对生产数据库的运行做到实时监控、精准定位异常、优化资源配置。基线作为数据库健康状况的“晴雨表”,需要引起足够的重视,通过及时分析、处理预警信息,防止小问题演变成大故障,提高数据库的可用性和可靠性,保障业务的顺利开展。

原创 李鑫 匠心独运维妙维效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/858045.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

*动手学AI辅助编程* 学习笔记day1

按照教程的步骤走,小白也能很快用ai做出自己的小玩意 本次使用的平台是豆包的marscode,非常好用,很轻便,不需要自己安装环境。 新手友好,甚至超越cursor教程链接:Datawhale-AI活动 平台链接:豆包 MarsCode - 工作台 学习成果:

【GO应用】编译时插桩,Go应用监控的最佳选择

阿里妹导读 本文讲解了阿里云编译器团队和可观测团队为了实现Go应用监控选择编译时插桩的原因,同时还介绍了其他的监控方案以及它们的优缺点。 可观测性是以系统的指标、日志、链路追踪、持续剖析四大数据支柱为基础,从宏观到微观,通过不同数据之间互相关联,衍生出如数据监…

USACO计算机竞赛2024-2025即将开考 报名方式、考点内容全解析

USACO计算机竞赛2024-2025即将开考 报名方式、考点内容全解析USACO竞赛已经有30多年举办历史,吸引了全球众多计算机编程爱好者参赛,且比赛门槛低,中小学都可以参赛!如果学生有足够的算法能力,那么很有可能在USACO竞赛中拿到名次,助力名校申请。 查看以往MIT录取学生简历,…

elasticsearch修改Ik分词器源码实现基于MySQL更新分词

本文主要记录如何修改Ik分词器源码来实现基于MySQL数据库更新分词,所有步骤均为本人实际操作验证。如果你也刚好刷到这篇文章,希望对你有所帮助。 使用过Ik分词器的应该都知道,它提供了三种配置热词词库的方式:Ik内置词库 Ik外置静态词库 Ik远程词库 具体可以去看Ik的配置文…

从家电的“大成”到汽车的“认怂”,苏峻的工业设计追梦之路

孕育三年八个月,iCAR V23是苏峻进入汽车产业的第一个“孩子”,12月16日带着明星气质呱呱落地。 很巧,苏峻的上一个创业项目——米家空气净化器,落地正好十周年。和净化器一经面试即大成相比,iCAR V23上市后,苏峻的第一次发声,却是认错的内容——V23上市后,第一时间听取…

Vue2环境中AntDeisgn1.x的树形下拉选择组件

示例相关代码 <a-tree-selectv-model="type"show-searchstyle="width: 100%":dropdown-style="{ maxHeight: 400px, overflow: auto }"placeholder="请选择"allow-clear:tree-data="treeData":filter-tree-node="fi…

Linux 虚拟机重启找不到IP解决方案

@目录前言简介Linux 操作系统查看不到IP地址问题描述:第一步 :修改配置第二步 :查看ip第三步 :查看网卡第四步 :重启网络‌Linux 网络服务重启失败解决办法问题描述:第一步:查看NetworkManager的状态第二步:停止NetworkManager第三步:重启Network第四步:禁用NetworkM…

浏览器连续循环数据打印分页时分割模块问题

css设置@media print识别打印容器,给独立块元素(不想被分割的class添加 page-break-inside: avoid; 避免在元素内部进行分页 ),如下: -- 这样遇到一页纸不够放的时候不会分割 print-wrap 这个元素,自动换行到下一页~ @media print { .printChild { width: 100%;…

BERT的继任者ModernBERT:融合长序列处理、代码理解与高效计算的新一代双向编码器

BERT 发布于 2018 年(从人工智能发展速度来看已是遥远的过去),但它至今仍在广泛使用:实际上它目前是 HuggingFace hub 上下载量第二高的模型,月下载量超过 6800 万次,仅次于另一个针对检索任务优化的编码器模型。这源于其编码器架构在处理日常实际问题方面表现出色,例如…

OpenHarmony怎么修改DPI密度值?触觉智能RK3566鸿蒙开发板演示

开源鸿蒙OpenHarmony系统下,修改DPI密度值的方法,触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566四核处理器,Laval鸿蒙社区推荐开发板,已适配全新开源鸿蒙OpenHarmony5.0 Release系统,适合鸿蒙开发入门学习本文介绍在开源鸿蒙OpenHarmony系统下,修改DPI密度值的…

医疗行业的项目管理革新:提升工作效率与患者体验

一、医疗行业的痛点 医疗行业在日常运营中面临一系列管理和运营上的挑战,以下是一些主要痛点: 1.任务管理与进度跟踪困难 在医院或医疗机构中,医疗任务和工作往往涉及多个科室、医护人员和患者。传统的管理方式通常依赖纸质记录或简单的电子表格,这种方法在任务繁多、协作复…