mysql 性能监控小工具之 mytop

参考: How To Use Mytop to Monitor MySQL Performance

I. 安装与配置

Centos 下可以直接通过yum进行安装

yum install mytop

使用姿势和top命令一样,直接用即可

mytop

可能提示没有权限,如下

# mytop                                                                                            !500
Cannot connect to MySQL server. Please check the:

  * database you specified "test" (default is "test") * username you specified "root" (default is "root") * password you specified "" (default is "") * hostname you specified "localhost" (default is "localhost") * port you specified "3306" (default is 3306) * socket you specified "" (default is "") The options my be specified on the command-line or in a ~/.mytop config file. See the manual (perldoc mytop) for details. Here's the exact error from DBI. It might help you debug: Access denied for user 'root'@'localhost' (using password: NO) 
# mytop                                                                                            !500
Cannot connect to MySQL server. Please check the:

  * database you specified "test" (default is "test") * username you specified "root" (default is "root") * password you specified "" (default is "") * hostname you specified "localhost" (default is "localhost") * port you specified "3306" (default is 3306) * socket you specified "" (default is "") The options my be specified on the command-line or in a ~/.mytop config file. See the manual (perldoc mytop) for details. Here's the exact error from DBI. It might help you debug: Access denied for user 'root'@'localhost' (using password: NO)

配置文件

通过上面的提示,可以添加配置文件

vim ~/.mytop

## 配置信息如

host=localhost
user=root
pass=mypwd
db=dbName
port=3306
# 刷新时间,5s刷新下 delay=5 batchmode=0 color=1 idle=1 
vim ~/.mytop

## 配置信息如

host=localhost
user=root
pass=mypwd
db=dbName
port=3306
# 刷新时间,5s刷新下 delay=5 batchmode=0 color=1 idle=1

使用姿势

直接将密码写到配置文件,可能并不是非常安全,可以如下操作

mytop --prompt
# 然后再窗口内输入密码即可

如果不想添加上面的配置,可以指定参数监控的db

mytop -d dbName --prompt

II. 监控与参数说明

执行上面的命令之后,窗口显示内容如下

MySQL on localhost (5.7.18)                                                     up 345+19:27:20 [18:55:58] Queries: 778.2k qps: 0 Slow: 0.0 Se/In/Up/De(%): 72/00/02/00 qps now: 1 Slow qps: 0.0 Threads: 3 ( 1/ 6) 50/00/00/00 Key Efficiency: 50.0% Bps in/out: 3.3/163.3 Now in/out: 24.9/ 2.1k Id User Host/IP DB Time Cmd Query or State -- ---- ------- -- ---- --- ---------- 568 root localhost story 0 Query show full processlist 567 root localhost story 5 Sleep 541 root localhost:44568 solo 3529 Sleep

1. 参数说明

第一行

Queries: 778.2k  qps:    0 Slow:     0.0         Se/In/Up/De(%):    72/00/02/00

整体信息:

  • Queries 服务器处理过的query总数
  • qps 每秒处理的query数量的平均值
  • Slow 慢查询总数
  • Se/In/Up/De(%) Select,Insert,Update,Delete 各自的占比

第二行

qps now:    1 Slow qps: 0.0  Threads:    3 (   1/   6) 50/00/00/00

当前的qps信息:

  • qps now 本周期内的每秒处理query的数量
  • Slow qps 本周期内的每秒慢查询数量
  • Threads 当前连接线程数量,后面括号内的第一个数字是active状态的线程数量,第二个数字是在线程缓存中的数量
  • 最后一列是本周期内的 Select,Insert,Update,Delete 各自的占比

第三行

Key Efficiency: 50.0%  Bps in/out:   3.3/163.3 Now in/out: 24.9/ 2.1k
  • Key Efficiency : 表示有多少key是从缓存中读取,而不是从磁盘读取的
  • Bps in/out : 表示mysql平均的流入流出数据量
  • Now in/out : 是本周期内的流入流出数据量

剩余

后面的就是线程信息

2. 常用命令

查看活动线程的详细信息,看下这个线程里面正在执行的sql是什么

  • 按F, 然后输入线程ID
  • 然后 e 可以查看sql的情况

查看命令执行的汇总情况

  • 按c
  • 退出按 t

需要更多地命令帮助

  • 按 ?