当前位置: 首页 > news >正文

基于Python实现用于实时监控和分析 MySQL 服务器的性能指标和相关信息工具源码

MySQL命令行监控工具 - mysqlstat 介绍

mysqlstat 是一个命令行工具,用于实时监控和分析 MySQL 服务器的性能指标和相关信息。
它可以帮助 DBA(数据库管理员)和开发人员定位和解决数据库性能问题。
以下是 mysqlstat 工具的主要功能:
  • 实时监控:mysqlstat 可以实时监控 MySQL 服务器的 QPS(每秒查询数)、TPS(每秒事务数)以及网络带宽使用情况等指标。
  • 查询分析:它可以展示执行次数最频繁的前N条 SQL 语句,帮助定位查询效率低下的问题,以便进行优化。
  • 表文件分析:mysqlstat 可以列出访问次数最频繁的前N张表文件(.ibd),这有助于查找热点表和磁盘使用情况。
  • 锁阻塞:工具可以显示当前被锁阻塞的 SQL 语句,帮助识别并解决锁相关的问题。
  • 自动杀死当前锁阻塞的SQL
  • 死锁信息:mysqlstat 可以提供关于死锁的信息,帮助 DBA 了解并解决死锁问题。
  • 索引分析:它可以查找重复或冗余的索引,帮助优化索引使用和减少存储空间的占用。
  • 连接数统计:工具可以统计应用端 IP 的连接数总和,有助于了解数据库的连接负载情况。
  • 表大小统计:mysqlstat 可以提供库中每个表的大小统计信息,有助于了解表的存储占用情况。
  • Binlog 分析:它可以在高峰期分析哪些表的 TPS 较高,帮助定位性能瓶颈或优化热点表。
  • 查看主从复制信息:工具可以提供主从复制状态和延迟情况,方便监控和管理主从复制环境。

原理

在这里插入图片描述


演示

https://www.douyin.com/video/7288887720057851151

使用

MySQL命令行监控工具 - mysqlstatoptions:-h, --help            show this help message and exit-H MYSQL_IP, --mysql_ip MYSQL_IPMysql IP-P MYSQL_PORT, --mysql_port MYSQL_PORTMysql Port-u MYSQL_USER, --mysql_user MYSQL_USERMysql User-p MYSQL_PASSWORD, --mysql_password MYSQL_PASSWORDMysql Password--top  N              需要提供一个整数类型的参数值,该参数值表示执行次数最频繁的前N条SQL语句--io  N               需要提供一个整数类型的参数值,该参数值表示访问次数最频繁的前N张表文件ibd--lock                查看当前锁阻塞的SQL--kill                杀死当前锁阻塞的SQL--dead                查看死锁信息--index               查看重复或冗余的索引--conn                查看应用端IP连接数总和--tinfo               统计库里每个表的大小--binlog              Binlog分析-高峰期排查哪些表TPS比较高--repl                查看主从复制信息-v, --version         show program's version number and exit
  • 实时监控mysql服务器的QPS、TPS、网络带宽指标(默认不加参数选项)
shell> chmod 755 mysqlstat  
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang'

在这里插入图片描述

  • 执行次数最频繁的前10条SQL语句
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --top 10

在这里插入图片描述

  • 访问次数最频繁的前10张表文件ibd
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --io 10

在这里插入图片描述

  • 查看当前锁阻塞的SQL
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --lock
或
shell> #杀死当前锁阻塞的SQL
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --lock --kill

在这里插入图片描述

  • 查看重复或冗余的索引
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --index

在这里插入图片描述

  • 查看应用端IP连接数总和
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --conn

在这里插入图片描述

  • 统计库里每个表的大小
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --tinfo

在这里插入图片描述

  • 查看死锁信息
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --dead

在这里插入图片描述

  • Binlog分析-高峰期排查哪些表TPS比较高
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --binlog mysql-bin.000003

在这里插入图片描述

或者指定一个binlog范围

shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --binlog  mysql-bin.000003  mysql-bin.000006

会统计mysql-bin.000003,mysql-bin.000004,mysql-bin.000005,mysql-bin.000006这4个文件

  • 查看主从复制信息
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --repl

在这里插入图片描述

在这里插入图片描述

支持 MySQL5.7/8.0,工具适用于Centos7 系统。

8.0默认是caching_sha2_password用户认证,需要更改为 mysql_native_password

mysql> CREATE USER 'rd'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> GRANT ALL on *.* to 'rd'@'%';

完整代码下载地址:实时监控和分析 MySQL 服务器的性能指标和相关信息工具

http://www.lryc.cn/news/238562.html

相关文章:

  • Android 10-13鼠标右键返回功能适配
  • 51单片机/STM32F103/STM32F407学习1_点亮LED灯
  • (Transfer Learning)迁移学习在IMDB上训练情感分析模型
  • 蓝桥杯每日一题2023.11.20
  • 【迅搜02】究竟什么是搜索引擎?正式介绍XunSearch
  • 【Sql】sql server还原数据库的时候,提示:因为数据库正在使用,所以无法获得对数据库的独占访问权。
  • 【Go语言实战】(26) 分布式搜索引擎
  • 【理解ARM架构】不同方式点灯 | ARM架构简介 | 常见汇编指令 | C与汇编
  • JS服务端技术—Node.js知识点锦集
  • 界面控件DevExpress WPF流程图组件,完美复制Visio UI!(一)
  • 为什么选择B+树作为数据库索引结构?
  • 什么是神经网络(Neural Network,NN)
  • 15 Go的并发
  • 管理体系标准
  • 【Java 进阶篇】揭秘 Jackson:Java 对象转 JSON 注解的魔法
  • ②【Hash】Redis常用数据类型:Hash [使用手册]
  • 十七、SpringAMQP
  • Java虚拟机(JVM)的调优技巧和实战
  • idea中的sout、psvm快捷键输入,不要太好用了
  • shell脚本字典创建遍历打印
  • 【设计模式】聊聊职责链模式
  • 【C++进阶之路】第五篇:哈希
  • CentOS基Docker容器时区配置解决方案
  • 探索 Material 3:全新设计系统和组件库的介绍
  • 《多GPU大模型训练与微调手册》
  • 【C++】const与类(const修饰函数的三种位置)
  • 深度学习在图像识别中的革命性应用
  • R语言读文件“-“变成“.“
  • RabbitMQ 基础操作
  • 自然语言处理:Transformer与GPT