• 基于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命令行监控工具 - mysqlstat
    
    options:
      -h, --help            show this help message and exit
      -H MYSQL_IP, --mysql_ip MYSQL_IP
                            Mysql IP
      -P MYSQL_PORT, --mysql_port MYSQL_PORT
                            Mysql Port
      -u MYSQL_USER, --mysql_user MYSQL_USER
                            Mysql User
      -p MYSQL_PASSWORD, --mysql_password MYSQL_PASSWORD
                            Mysql 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 实时监控mysql服务器的QPS、TPS、网络带宽指标(默认不加参数选项)
    shell> chmod 755 mysqlstat  
    shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang'
    
    • 1
    • 2

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

    • 查看当前锁阻塞的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
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

    或者指定一个binlog范围

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

    会统计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
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

    支持 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'@'%';
    
    • 1
    • 2

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

  • 相关阅读:
    安卓生成公钥和md5签名
    Arrow parquet types
    数据库系列:大厂使用数据库中间件解决什么问题?
    2022年湖南省成人高考考试成绩查询渠道
    Ubuntu 20.04 升级Ubuntu 22.04 及更换国内源指南
    【bug】记一个若依的部门树修改报错的bug
    安全分析能力的核心能力
    使用verdaccio搭建私有组件库
    springboot配置多数据源
    【学习笔记46】JavaScript购物车的实现
  • 原文地址:https://blog.csdn.net/shiyunzhe2021/article/details/134523045