V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
hcymysql
V2EX  ›  MySQL

MySQL 命令行监控工具 - mysqlstat

  •  
  •   hcymysql ·
    hcymysql · 2023-11-09 14:33:59 +08:00 · 902 次点击
    这是一个创建于 385 天前的主题,其中的信息可能已经有所发展或是发生改变。

    mysqlstat 是一个命令行工具,用于实时监控和分析 MySQL 服务器的性能指标和相关信息。 它可以帮助 DBA (数据库管理员)和开发人员定位和解决数据库性能问题。

    https://github.com/hcymysql/mysqlstat

    以下是 mysqlstat 工具的主要功能:

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

    查看主从复制信息
    

    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'; Query OK, 0 rows affected (0.00 sec)

    hcymysql
        1
    hcymysql  
    OP
       2023-11-24 16:33:54 +08:00
    2023-11-24 更新:mysqlstat 工具版本号: 1.0.12 - 修复 binlog 统计 BUG
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3155 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:31 · PVG 22:31 · LAX 06:31 · JFK 09:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.