点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
Innotop是一款Perl脚本编写、开源、功能强大的MySQL的监控工具。它拥有功能强大,配置简单,易于使用等等特性。INNOTOP是用PERL语言写成的,通过文本模式,它能详细的监控出当前MYSQL和INNODB运行的状态,以便维护人员根据结果合理的优化MYSQL,让MYSQL更稳定更高效的运行。
下载地址:https://github.com/innotop/innotop
一种是开发版(innotop-master)
一种是稳定版(innotop-gtid)
在这里,我们使用的是开发版。
2. 解压压缩包
输入命令:
unzip innotop-master.zip

3. 安装依赖包
输入命令:
yum search ReadKey

yum install -y perl-TermReadKey

4. 编译安装
输入命令:
cd innotop-master
perl Makefile.PL



1. 帮助信息
innotop --help
man innotop
perldoc innotop
首先我们通过innotop --help查看其常见的启动参数:

在命令行输入 innotop -u <username> -p <password> -h <hostname> -P <port> 即可连接需要监控的数据库,如果密码中有特殊字符,最好使用双引号将密码括起来。
2. 工具演示
使用innotop连接数据库,进入交互式操作界面后,可输入不同工作模式的快捷键,进行切换工作模式。可输入“?”查看如何进入各种工作模式,如下图所示。
下面详细介绍几种常用工作模式的作用和进入方法。

1)Dashboard(仪表盘)
在交互式界面,默认进入仪表盘工作模式,在切换至其他工作模式后,使用大写的"A"字母进入该工作模式或者在非交互式模式下使用-m选项指定大写的"A"字母即可进入该工作模式,如下图所示:

Uptime:当前MySQL Server持续运行了多长时间,上图414d表示414天;
QPS:当前数据库中的QPS;
Cxns:当前数据库中的客户端连接数;
Run:当前数据库中正在执行查询(Query状态的)的客户端连接数;
Miss:查询未命中buffer pool缓存的次数;
Lock:发生锁等待的数量;
Tbls:历史打开表数量,从状态变量Open_tables获取值。
2)InnoDB I/O Info(InnoDB I/O线程信息)
进入交互式界面之后,使用大写的"I"字母或者在非交互式模式下使用-m选项指定大写的"I"字母即可进入该工作模式,如下图所示:

I/O threads:显示当前的IO相关的线程状态信息;
Pending I/O:显示当前处于Pending状态的I/O操作信息;
File I/O Misc:文件I/O相关的操作统计信息(包含所有数据文件的文件I/O操作);
Log Statistics:redo log的当前LSN号、已经刷新到磁盘的LSN号、最近一次checkpoint的LSN号,以及redo log的总IO数量,平均每秒IO数量。
3)Query List(查询语句列表信息)
进入交互式界面之后,使用大写的"Q"字母或者是非交互式模式下使用-m选项指定大写的"Q"字母即可进入该工作模式,如下图示:

输出信息的含义如下:
When:为now表示当前实时的统计信息,为Total表示历史总的统计信息;
Load:当前数据库实例的CPU负载;
Cxns:当前数据库实例中的客户端连接数;
QPS:当前数据库实例中的QPS;
Slow:当前数据库实例中的慢查询数量;
Se/In/Up/De%:增删改查比例;
QCacheHit:QC 命中率;
KCacheHit:索引缓存命中率;
BpsIn:读入到buffer pool中的数据量;
BpsOut:从buffer pool中读出的数据量。
Cmd:语句的command类型;
ID:查询线程ID;
State:查询线程状态;
User:查询线程用户;
Host:查询线程主机名;
DB:查询线程默认数据库名;
Time:查询线程处于某个状态的持续时间;
Query:查询线程当前正在执行的SQL语句文本。
4)Locks(查看Server层锁信息)
进入交互式界面之后,使用大写的"L"字母或者是非交互式模式下使用-m选项指定大写的"L"字母即可进入该工作模式,如下图所示:

InnoDB Locks:InnoDB 的记录锁统计信息;
ID:正在等待锁的线程ID;
Type:正在等待的锁类型;
Waiting:正在等待多少把锁;
Wait:锁等待时间(时间格式);
Active:线程活跃时间;
Mode:锁模类型;
DB:正在等待的锁所在的数据库;
Table:正在等待的锁所在的表;
Index:正在等待的锁所在的索引;
Ins Intent:插入意向锁的个数;
Special:特殊信息,对锁进行描述,例如:rec but not gap,表示是记录锁,但不是范围锁。
总 结:
Innotop的安装使用非常简单,功能也非常强大,工具是辅助我们工作很重要的一部分,关键还在于使用工具的人能否物尽其用,我们要学会借用工具的力量把我们从重复枯燥的工作中释放出来。后续如果积累了一些使用心得和案例,再深入总结一下这个工具!

本文作者:吴航舟(上海新炬中北团队)
本文来源:“IT那活儿”公众号





