使用 innotop 监控

innotop是一款用Perl编写的MySQL命令行监控工具,能够显示InnoDB事务、运行中的查询、锁信息等,并支持复制监控及多实例监控。提供丰富的模式以查看InnoDB内部状态,如缓冲区、死锁、外键错误等。

一、介绍

   一个模拟 top 工具的 MySQL 命令行监控,用 perl 语言编写,感觉大神们都喜欢这玩意,果然都很有艺术范。

   为什么要选用这个呢?因为,比起看各种图表来,看命令行逼格更高!

   开个玩笑。。。

   虽然名字是 innotop,但是监控的不仅仅是 InnoDB 的情况,来看看它的一些功能特性:

1. 显示 InnoDB 当前的全部事务

2. 显示当前正在运行的 query (效果相当于 “show full processlist”)

3. 显示当前锁和锁等待的列表

4. 复制监控,将 master 和 slave 的情况显示在一起

5. 能同时监控多个 MySQL 实例

6. 配置性 和 扩展性 都很好

7. 比起像 cacti 、zabbix 这样的监控工具,安装搭建不要太简单啊

另外,innotop 是 Baron Schwartz 写的,这哥们貌似自己创业了,也不知道以后还有空写书不。

 

二、下载安装

   这里就不用多说了,github 和 code.google 上都有。网上相关的安装文档也很多,看到 Makefile.PL 这个文件就明白该咋办了,我使用的版本是 1.9 ,提一下它的相关依赖包 Time::HiRes , Term::ReadKey , DBI , DBD::mysql。

 

三、使用

   不知道是不是打开方式的原因,两处来源都没找到相关文档。只能靠 man 手册和网络上的一些简单信息来慢慢尝试使用了。

   innotop -u <username> -p <password> -h <hostname> -P <port> -S <socket>

   示例: innotop -usystem  -p'HD_root2010!' -P 3306 -S /data/mysqldata/3306/mysql.sock

   可以进入监控状态。

 

可获取的内容:

1.显示当前innodb的全部事务列表;

2.显示当前正运行着的查询;

3.显示当前锁和锁等等的列表;

4.服务器状态和变量的摘要信息 显示了数值的相对变化幅度;

5.有多种模式可用来显示Innodb 内部信息,如缓冲区、死锁、外键错误、I/O情况、行操作、信号量等。

6.复制健康,将主机和从机的状态显示一起;

7.有一个显示任意服务器变量的模式;

8.服务器组可以帮我更方便的组织多台服务器;

9.在命令行脚本下可以使用非交互模式。

 

括号中为后加的注释
Switch to a different mode:
   B  InnoDB Buffers           I  InnoDB I/O Info      Q  Query List
   C  Command Summary   L  Locks                      R  InnoDB Row Ops
   D  InnoDB Deadlocks     M  Replication Status  S  Variables & Status
   F  InnoDB FK Err            O  Open Tables           T  InnoDB Txns

Actions:
   a  Toggle the innotop process(切换innotop进程)    k  Kill a query's connection(杀死一查询的连接)
   c  Choose visible columns    (可见列选择)         n  Switch to the next connection(切换到下一个连接)
   d  Change refresh interval   (更改刷新间隔)       p  Pause innotop (暂停innotop)
   e  Explain a thread's query  (说明线程的查询)     q  Quit innotop  (退出)
   f  Show a thread's full query(显示线程的完整查询) r  Reverse sort order (反向排序)
   h  Toggle the header on and off(头切换和关闭)     s  Change the display's sort column(更改显示的排序列)
   i  Toggle idle processes       (切换空闲进程)     x  Kill a query  (杀死一查询)

Other:
 TAB  Switch to the next server group   /  Quickly filter what you see
   !  Show license and warranty         =  Toggle aggregation
   #  Select/create server groups       @  Select/create server connections
   $  Edit configuration settings       \  Clear quick-filters

Switch to a different mode 详解:
B  InnoDB Buffers:
该 模式显示有关InnoDB缓冲池,页面统计,插入缓冲,自适应哈希索引。这些数据来自展示InnoDB的状态。
此模式默认包含 buffer_pool,page_statistics,insert_buffers,和adaptive_hash_index表。

C  Command Summary:
该命令是建立汇总表通过提取STATUS_VARIABLES变量。变量必须是数字,必须匹配给定 的cmd_filter配置变量的前缀。百分比列是在表中的所有变量总数的

百分比,所以我可以看到变数的相对比例。
默认的前缀是“Com_”。我可以选择的's'键改变过滤前缀。

D  InnoDB Deadlocks:
这种模式显示,在过去InnoDB的死锁中涉及的事务。第二个表显示等待事务。

F  InnoDB FK Err:
此模式显示最后InnoDB的外键的错误信息,

I  InnoDB I/O Info:
这种模式显示InnoDB的I/O信息,包括I/O线程,挂起的I/O,文件I/O,日志统计。默 认显示io_threads,pending_io,file_io_misc,和log_statistics

L  Locks:
这种模式显示了当前锁的信息。目前只支持InnoDB,并在默认情况下我只看到那些锁等待的事务。

M  Replication Status:
这种模式输出了 SHOW SLAVE STATUS 和 SHOW MASTER STATUS 的信息成3张表,前两个显示从的sql和I/O的状态,最后显示主的状态

O  Open Tables:
这部分来自SHOW OPEN TABLES命令的输出,默认情况下,筛选出正由一个或多个查询使用的表,这样可以快速得到哪些表是'热'。也可以猜测哪些表可能被

锁。

Q  Query List:
此模式显示从SHOW FULL PROCESSLIST的信息,就像mytop的查询列表模式。有一个信息头,显示有关服务器的一般状态信息。可以用'h'切换开或关。
默认情况 下,innotop隐藏不活动的进程和它自己的进程。您可以切换和关闭这些用'i'和'a'键。

R  InnoDB Row Ops:
全名是InnoDB Row Operations and Semaphores(InnoDB的行操作和信号灯)。
这种模式显示InnoDB行操作、row operation miscellaneous、信号、innodb等待信息

S  Variables & Status:
这种模式计算,如每秒查询的统计信息。您可以显示绝对值之间,或增量值。
's' 键是没一定时间打印数字到前面
'g' 键是打印图像
'v' 键是以一个表格的形式显示,定期刷新值。

T  InnoDB Txns:
全名是InnoDB Transactions。
这种模式从innodb监视器中输出事务。我可以 杀掉一个查询或进程,通过'k'和'x'键,也可以explain一个查询,通过'e'或'f'键。InnoDB不会输出所有的查

询事务,如果查询太长被截断。信息头可以用'h'键打开或关闭,
默认情况下,innotop隐藏不活动的进程和它自己的进程。我可以切换和 关闭这些用'i'和'a'键。

转载于:https://www.cnblogs.com/muhu/p/4135735.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值