Linux 有个非常有用的 top 命令,可以查看操作系统的性能状态,mytop 命令类似 top 命令,界面结构也类似,只是 mytop 显示的是 mysql 的状态信息,例如我们非常关心的 QPS 指标
使用说明
mytop 的结果信息主要分为上下两个部分,上面是各项指标,下面是线程列表
第1行很简单,就是版本信息
第2行是整体信息
Queries 服务器处理过的query总数
qps 每秒处理的query数量的平均值
Slow 慢查询总数
Se/In/Up/De(%) Select,Insert,Update,Delete 各自的占比
第3行是实时信息,本刷新周期内的信息统计,刷新周期是在配置文件中指定
qps now 本周期内的每秒处理query的数量
Slow qps 本周期内的每秒慢查询数量
Threads 当前连接线程数量,后面括号内的第一个数字是active状态的线程数量,第二个数字是在线程缓存中的数量
最后一列是本周期内的 Select,Insert,Update,Delete 各自的占比
Key Efficiency 表示有多少key是从缓存中读取,而不是从磁盘读取的
Bps in/out 表示mysql平均的流入流出数据量
Now in/out 是本周期内的流入流出数据量
剩下的就是线程信息列表
列出了当前的mysql线程,根据idle状态时间排序,通过 o 键可以选择升序或降序
列表中显示出各线程的详细信息,例如 线程ID、用户名、客户端的地址、连接的数据库名称、详细查询语句
会发现 "show full processlist" 一直都在,因为 mytop 会使用这个语句收集 mysql 信息
辅助命令
mytop 提供了一些有用的命令,在运行界面按下相应按键即可
例如按下 ?,会进入帮助界面
其他示例:
按键 h 可以根据客户端地址进行过滤
按键 s 可以根据用户名进行过滤
按键 k 可以杀死某个线程
按键 m 进入QPS模式,只是动态显示QPS数量
安装配置
安装
以 centos7 为例,执行以下几个命令即可
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
yum install yum-plugin-protectbase.noarch -y
yum install mytop -y
配置
vi /root/.mytop
写入如下内容:
host=localhost
user=root
pass=111111
db=mysql
port=3306
socket=/tmp/mysql.sock
delay=5
batchmode=0
color=1
idle=1
保存退出
其中就是mysql的连接信息和基本配置
pass是密码,如果感觉不安全,可以不指定,在执行 mytop 命令时再输入,执行方式:mytop --prompt
delay 指定 mytop 多长时间刷新一次,也就是前面所说的刷新周期
安装配置完成后,执行 mytop 命令就可以了