高手的存在,就是让服务10亿人的时候,你感觉只是为你一个人服务......

mytop 安装使用

目录
  1. 1. 安装mytop
    1. 1.1. 遇到的问题:
      1. 1.1.1. 问题一:
      2. 1.1.2. 问题二:
  2. 2. mytop使用
    1. 2.1. 各项指标
    2. 2.2. 线程列表

mytop 是一个类似 top 命令的 MySQL 监控工具,可以监控当前正在执行的sql和连接数。


安装mytop

下载地址:http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz

1
2
3
4
5
6
tar xzvf mytop-1.6.tar.gz
cd mytop-1.6
perl Makefile.pl
make
make test
make install

遇到的问题:

问题一:

Use of uninitialized value in substitution (s///) at /usr/bin/mytop line 958.

解决方法:
编辑mytop

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$thread->{Host} =~ s/:\d+$//;

my $host = gethostbyaddr(inet_aton($thread->{Host}), AF_INET);

$host =~ s/^([^.]+).*/$1/; (删除或者注释)

$thread->{Host} = $host;(删除或者注释)

if ($host) (添加)

{ (添加)

$host =~ s/^([^.]+).*/$1/;(添加)

$thread->{Host} = $host;(添加)

}

问题二:

Error in option spec: “long|!”

解决:
编辑mytop

1
2
找到 "long|!" => \$config{long_nums}, 
修改成 "long|long_nums|l!" => \$config{long_nums},


mytop使用

执行命令:
./mytop
或者
./mytop -u用户名 -p密码 -d 库名 -h ip地址 …

相关参数:

1
2
3
4
5
6
7
8
9
10
11
-u / –user <USERNAME>:指定 username,默认: root
-p / –pass / –password <PASSWORD>:指定password,默认:none
-h / –host <HOSTNAME[:PORT]>:指定 MySQL server的hostname,默认:localhost
-P / –port <PORT>:指定连接 MySQL server的port,默认:3306
-s / –delay <SECONDS>:更新的秒数,默认:5
-d / –db / –database <DATABASE>:指定连接的资料库,默认:test
-b / –batch / –batchmode:指定为 batch mode,每次更新不会清除旧的显示结果,会将更新资料显示上最上方,预设是unset
-S / –socket <PATH_TO_SOCKET>:指定使用MySQL socket直接连线,而不使用TCP/IP连线,默认:none(当mytop和MySQL在同一台时才能使用)
–header or -noheader:是否要显示表头,默认:header

–color or –nocolor:是否要使用颜色,默认:color
-i / -idle or -noidle:idle 的thread是否要出现在清单上,默认:idle

Alt text

各项指标

第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 键可以选择升序或降序

会发现”show full processlist” 一直都在,因为 mytop 会使用这个语句收集 mysql 信息

mytop 提供了一些有用的命令,在运行界面按下相应按键即可
s 根据用户名进行过滤
k 杀死某个线程
m 进入QPS模式,只是动态显示QPS数量
f 了解特定线程的信息

参考:
http://blog.itpub.net/25099483/viewspace-1867664/
https://blog.csdn.net/zxnm55/article/details/19040205
https://www.kancloud.cn/kkk1/cnqf/467623