数据库性能监控如何做?简单3步实现慢SQL、长事务监控!

news2024/11/15 23:30:59

1.背景说明

对于使用关系型数据库的系统而言,在系统投产上线后,及时发现程序运行中的慢SQL语句,能有效降低系统运行风险;对于分布式应用系统来说,在系统日常运行中,为避免因数据库长事务导致主备切换风险,实现对数据库长事务的监控,也是必不可少的。本文以MySQL数据库为例,概述通过数据库自带功能特性performance_schema实现对慢SQL和长事务的监控方法。

2.performance_schema特性介绍

(1)performance_schema是运行在较低级别的用于监控MySQLServer运行过程中的资源消耗、资源等待等情况的一个功能特性,可以高效便捷实现对数据库事务和慢SQL的监控。

(2)performance_schema的数据只保存在本地server的内存中,该库的数据发生变化时不会被写入binlog中,也不会通过复制机制被复制到其他server中,因此如果服务器重启,则历史数据丢失。

3.performance_schema监控简介

(1)慢SQL监控主要包含performance_schema的语句事件表,一般通过*_history、*_history_long表查询相关历史记录即可,*_current作为实时监控表仅供必要时参考。

(2)事务监控主要包含performance_schema的事务事件表,一般通过*_history、*_history_long表查询相关历史记录,*_current实时监控表仅供必要时参考参考。

(3)因performance_schema中无法通过特定标识实现对慢SQL/事务的监控,因此一般需要利用请求执行时段作为筛选条件,实现对慢SQL/事务的监控和命中。

(4)performance_schema计时器说明:

1)事件的时间信息包含TIMER_START、TIMER_END、TIMER_WAIT共3个字段,q其单位均为皮秒(10-12秒)。TIMER_START和TIMER_END值分别表示事件开始时间、结束时间,TIMER_WAIT是事件持续时间,是衡量是否为长事务的主要指标。

2)时间信息都是相对计时器基线(“时间零点”)以来的皮秒,计时器基线指自服务器启动期以来的时间。

3)如果事件尚未完成,TIMER_END则为当前计时器值并且TIMER_WAIT是到目前为止经过的时间(TIMER_END-TIMER_START)。

4.使用performance_schema监控步骤详解

以事务监控为例,详细说明performance_schema用法。

(1)performance_schema支持查验

若PERFORMANCE_SCHEMA对应的Support列值为YES,则说明支持。

--检查当前数据库版本是否支持performance_schema

show engines;

(2)查看performance_schema启用是否生效

--查看performance_schema启用是否生效

show variables like'performance_schema';

(3)直接访问performance_schema相关表

1)获取实例启动时间

获取实例已运行时间,用当前时间-实例已运行时间=实例启动时间。

--获取实例已运行时间,单位为秒

show global status like'uptime';

2)事件执行时段获取

事件执行时段相关字段为TIMER_START、TIMER_END,计算方法为:

TIMER_START=请求执行开始时间-实例启动时间;

TIMER_END=请求执行结束时间-实例启动时间。

3)长事务筛选

长事务查询根据计算得出的事件开始时间TIMER_START、事件结束时间TIMER_END,系统设定长事务响应时间阈值TIMER_WAIT共同实现。例如:

--查询某执行时段,事务响应时间超过0.01秒的数据库事务:

select*from performance_schema.events_statements_history

where TIMER_START>=3600000000000000 and TIMER_END<=216000000000000000

and TIMER_WAIT>=10000000000;

(4)示例

请求执行时段为XXX,长事务响应时间阈值为0.01s,长事务查询过程如下:

1)获取实例启动时间

当前时间为2024/6/3 21:25:28,实例已运行时间为185270秒,则:

实例启动时间=2024/6/3 21:25:28-185270

=2024/6/1 17:57:38

2)事件执行时段获取

根据上一步骤,获取实例启动时间为2024/6/1 17:57:38,已知请求执行时段为2024/6/3 20:36:15-2024/6/3 20:36:17,则可得事件开始时间TIMER_START、事件结束时间TIMER_END分别为:

TIMER_START=2024/6/3 20:36:15-2024/6/1 17:57:38

=182317秒

=182317000000000000皮秒

TIMER_END=2024/6/3 20:36:17-2024/6/1 17:57:38

=182319秒

=182319000000000000皮秒

3)长事务筛选

已知事件开始时间TIMER_START、事件结束时间TIMER_END分别为182317000000000000皮秒、182319000000000000皮秒,系统长事务响应时间阈值为0.01s即10000000000皮秒,则据此组成筛选条件访问事务相关表:

--查询执行时段为2024/6/3 20:36:15-2024/6/3 20:36:17,响应时间超过0.01秒的数据库事务:

select*from performance_schema.events_statements_history

where TIMER_START>=182317000000000000 and TIMER_END<=182319000000000000

and TIMER_WAIT>=10000000000;

可根据查询结果中的SQL_TEXT字段定位对应SQL语句,附图如下:

5.总结

数据库慢SQL、长事务因对请求响应时间、系统稳定运行存在一定影响,因此需要尽量在程序开发测试阶段识别并解决,此外还需加强投产上线的日常巡检,通过多阶段管控尽量避免问题发生,实现系统安全平稳运行。

文末了:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。同时我邀请你进入我们的软件测试学习交流平台,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,了解测试行业的最新趋势,助你快速进阶Python自动化测试/测试开发,稳住当前职位同时走向高薪之路。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年 AI大模型我该买一张什么卡?

有钱啥也不用说&#xff0c;买张最贵的就是了。对囊中羞涩的我还说&#xff0c;我该买张什么样的显卡呢&#xff1f; 我的旧显卡RTX1060 6G&#xff0c;满负荷消耗功率110多瓦&#xff0c;几乎达到设计最大TDP&#xff0c;周日时拿了朋友的RTX3060Ti 8G&#xff0c;发现是锁算…

免费与付费代理IP工具的优缺点分析

面对市场上众多的代理IP工具&#xff0c;选择合适的工具成为一项挑战。本文将深入分析免费与付费代理IP工具的优缺点&#xff0c;协助您做出明智的选择。 一、免费代理IP工具的优缺点 优点&#xff1a; 零成本&#xff1a;最大的优点在于无需任何费用。对于预算有限的用户&a…

【资源一号02C卫星】

资源一号02C卫星 资源一号02C卫星是中国航天科技集团公司所属中国空间技术研究院负责研制生产的一颗重要遥感卫星。以下是关于该卫星的详细介绍&#xff1a; 一、基本信息 发射时间&#xff1a;2011年12月22日11时26分发射地点&#xff1a;中国太原卫星发射中心运载火箭&am…

加载数据模型:在数据采集中实现动态数据处理

介绍 在现代网络爬虫技术中&#xff0c;数据的动态处理成为了提升采集效率和准确性的重要手段。随着目标网站数据的多样性和复杂性增加&#xff0c;静态数据采集方法逐渐无法满足需求。本文以拼多多为例&#xff0c;探讨如何通过加载数据模型实现动态数据处理&#xff0c;并结…

【大模型-驯化】成功搞懂大模型的jsonl数据格式处理和写入,通过pandas读取和保存JSONL文件

【大模型-驯化】成功搞懂大模型的jsonl数据格式处理和写入&#xff0c;通过pandas读取和保存JSONL文件 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &…

文件上传-php

查找方式 ***(1) 黑盒 查找(upload) 扫描 (2) 应用型 窗口 上传中心或者后台中心 上传 Ps:后台是后台 权限是权限 (3) 会员中心 (4) 白盒 基本函数定义 写前端的 Enctype 上传类型Method 提交方式Onsubmit 鼠标的时间Action"放在指定文件"Php 接受表单数据 isset(…

简单计算器(python基础代码撰写)

简单计算器&#xff1a;仅适用无括号加减乘除&#xff0c;算法初阶&#xff0c;代码基础&#xff0c;不调库或模块“纯”手撕。 (笔记模板由python脚本于2024年09月22日 12:08:02创建&#xff0c;本篇笔记适合喜欢用python解决实际问题的coder翻阅) 【学习的细节是欢悦的历程】…

Java反射机制入门:解锁运行时类信息的秘密

反射技术&#xff1a; 其实就是对类进行解剖的技术 类中有什么&#xff1f;构造方法 成员方法成员变量 结论&#xff1a;反射技术就是把一个类进行了解剖&#xff0c;然后获取到 构造方法、成员变量、成员方法 反射技术的应用案例&#xff1a; idea框架技术&#xff1a;Spr…

【VMware】虚拟机安装

文章目录 一、安装二、登录配IP1.登录成功后&#xff1a;2.设置DNS地址3.重启网络服务 一、安装 1.tools文件中&#xff0c;准备VMware软件&#xff0c;与CentOS7.4安装包 详情操作 2. VMware软件安装成功后查看网络连接&#xff0c;出现新的以太网&#xff0c;Vmnet1&#xf…

MiniCPM-V 2.6训练时fuse_adam报错

原本pip install deepspeed安装了0.15.1版本的&#xff0c;但是在进行sft训练的时候还是报错。大概就是fuse_adam这个op编译有错&#xff0c;c版本要大于17什么的&#xff0c;一堆错。看了一堆解决方案尝试后发现如下这样的有用&#xff1a; 1.下载DeepSpeend源码 git clone ht…

打造灵活DateTimePicker日期时间选择器组件:轻松实现时间的独立清除功能

element ui中日期和时间选择器&#xff08;DateTimePicker&#xff09;是一个常见且重要的组件。它允许用户轻松地选择日期和时间&#xff0c;极大地提升了用户体验。然而&#xff0c;在某些场景下&#xff0c;用户可能需要更细粒度的控制&#xff0c;例如单独清除已选择的时间…

4款思维导图在线工具,新手速来!

想要工作更顺畅&#xff0c;办公软件少不了&#xff01;让咱们工作生活变得更加井井有条的小能手——思维导图软件。没错&#xff0c;就是那些能让你在头脑风暴、项目规划、会议记录时&#xff0c;思路瞬间清晰&#xff0c;逻辑一目了然的神奇工具。我亲身体验过的四款款热门软…

Web端云剪辑解决方案,提供前端产品源码

美摄科技作为业界领先的视频技术服务商&#xff0c;匠心打造Web端云剪辑解决方案&#xff0c;以前沿技术赋能企业用户&#xff0c;开启视频创作与编辑的新纪元。 【云端赋能&#xff0c;重塑剪辑体验】 美摄科技的Web端云剪辑解决方案&#xff0c;颠覆了传统视频编辑的局限&a…

Excel VLOOKUP函数怎么用?vlookup函数的使用方法及案例

大家好&#xff0c;这里是效率办公指南&#xff01; &#x1f50e; 在Excel的世界里&#xff0c;VLOOKUP函数无疑是查询和数据分析中的明星。无论是从庞大的数据表中提取特定信息&#xff0c;还是进行数据的快速匹配&#xff0c;VLOOKUP都能大显身手。今天&#xff0c;我们将深…

多机器学习模型学习

特征处理 import os import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.model_selection import StratifiedShuffleSplit from sklearn.impute import SimpleImputer from sklearn.pipeline import FeatureUnion fr…

行业副教授亲授,好评如潮丨合成孔径雷达干涉测量InSAR数据处理、地形三维重建、形变信息提取、监测等技能,助力精准决策!

目录 第一章 InSAR技术应用现状分析及其发展 第二章 InSAR原理、技术方法讲解 第三章 数据处理环境建立与软件熟悉 第四章 SAR影像数据获取、DEM数据获取 InSAR数据前处理技术 第五章 InSAR地形三维重建 第六章 DInSAR形变信息提取 第七章 时序InSAR技术形变速率与形变时…

【C++】检测TCP链接超时——时间轮组件设计

目录 引言 时间轮思想 设计的核心思路 完整代码 组件接口 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 对于高并发的服务器来说&#xff0c;链接是一种比较珍贵的资源&#xff0c;对不活跃的链接应该及时释放。判断连接是否活跃的策略是——在给定的时间内&#…

04 面部表情识别:Pytorch实现表情识别-表情数据集训练代码

总目录:人脸检测与表情分类 https://blog.csdn.net/whiffeyf/category_12793480.html 目录 0 相关资料1 面部表情识数据集2 模型下载3 训练0 相关资料 面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码):https://blog.csdn.net/guyuealian/article/details/1…

017_FEA_CSG_in_Matlab新的统一有限元分析工作流之2D几何

Matlab新的统一有限元分析工作流 从2023a开始&#xff0c;Matlab提供了一个统一有限元分析工作流&#xff08;UFEAW&#xff0c;unified finite element analysis workflow&#xff09;。 这个新的工作留提供一个统一的接口来求解三类问题&#xff0c;并且可以用同一套数据随…

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建搭建Flink

828华为云征文 | 云服务器Flexus X实例&#xff0c;Docker集成搭建搭建Flink Apache Flink是一个分布式大数据计算引擎&#xff0c;专为处理无界和有界数据流上的有状态计算而设计&#xff0c;以其高吞吐量、低延迟和高性能在实时流处理和批量计算领域脱颖而出&#xff0c;Flin…