mysql 性能监控小工具之 mytop

参考: How To Use Mytop to Monitor MySQL Performance

I. 安装与配置

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

1
yum install mytop

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

1
mytop

可能提示没有权限,如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 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)

配置文件

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
vim ~/.mytop

## 配置信息如

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

使用姿势

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

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

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

1
mytop -d dbName --prompt

II. 监控与参数说明

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

1
2
3
4
5
6
7
8
9
10
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. 参数说明

第一行

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 各自的占比

第二行

1
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 各自的占比

第三行

1
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

需要更多地命令帮助

  • 按 ?

III. 其他

一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

扫描关注

QrCode