文档章节

mysql监控管理工具–innotop

五大三粗
 五大三粗
发布于 2015/05/21 21:49
字数 991
阅读 177
收藏 8
点赞 0
评论 0

INNOTOP是一个通过文本模式显示MySQL和InnoDB的监测工具。INNOTOP是用PERL语言写成的,这使它能更加灵活的使用在各种操作平台之上,它能详细的的监控出当前MYSQL和INNODB运行的状态,以DBA根据结果,可以合理的优化MYSQL,让MYSQL更稳定更高效的运行。
 
1.innotop安装
安装INNOTOP工具非常简单,其是由PERL写的,当然需要PERL环境和相关的工具包。在安装之前先要确定你的系统安装了Time::HiRes,Term::ReadKey,DBI,DBD::mysql这四个包

1 cpanm --mirror http://mirrors.sohu.com/CPAN/ --mirror-only DBI DBD::mysql Term::ReadKey Time::HiRes3

参考官网:http://innotop.googlecode.com/svn/html/installing.html

2 tar -zxf innotop-1.9.0.tar.gz
3 cd innotop-1.9.0
4 perl Makefile.PL
5 make install
6 #这样就安装完innotop,系统多出一个命令innotop

 
2.使用方法
参考官网:http://innotop.googlecode.com/svn/html/manual.html
使用方法:
innotop -uroot -p123456

[RO] Dashboard (? for help)                            127.0.0.1, 3h, 0.06 QPS, 2/1/0 con/run/cac thds, 5.5.30-log
Uptime  MaxSQL  ReplLag  Cxns  Lock  QPS   QPS  Run  Run  Tbls  Repl  SQL
    3h                      2     0  0.06                   13  Off    
输入“?”得到帮助
Switch to a different mode:
   A  Dashboard         I  InnoDB I/O Info     Q  Query List
   B  InnoDB Buffers    K  InnoDB Lock Waits   R  InnoDB Row Ops
   C  Command Summary   L  Locks               S  Variables & Status
   D  InnoDB Deadlocks  M  Replication Status  T  InnoDB Txns
   F  InnoDB FK Err     O  Open Tables         U  User Statistics
Actions:
   d  Change refresh interval        p  Pause innotop
   k  Kill a query's connection      q  Quit innotop
   n  Switch to the next connection  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
Press any key to continue

 
3.MySQL如何获取当前执行的SQL
innotop的Q模式则可以完美的解决获取当前运行的SQL的问题。innotop -m Q 或者innotop进入后再按shift+q进入Query list模式:

Query List (? for help) mysql01, 75+03:16:16, 774.20 QPS, 83 thd, 5.1.24-rc-log

CXN    When   Load  QPS     Slow  QCacheHit  KCacheHit  BpsIn    BpsOut 
my120  Now    0.00  774.20     0     40.22%    100.00%  207.98k    1.46M
my120  Total  0.00  212.69     2     29.70%    100.00%   56.90k  402.15k

CXN     Cmd    ID      User    Host           DB      Time   Query                                                                  
mysql01   Query   20936  poster  192.168.1.1    poster  00:00  select a.poster_id, 
a.pic_id, a.gmt_create, a.gmt_modified, a.url, a.no

然后按e并输入thread ID显示执行计划或者按f显示完整sql语句,或者按o显示系统优化过的语句(需要MySQL的版本支持EXPLAIN EXTENDED)。个人感觉,还是e最有用,其他两个选项,则有点鸡肋了。

Query List (? for help)  mysql01, 75+03:16:16, 774.20 QPS, 83 thd, 5.1.24-rc-log
EXPLAIN PARTITIONS
select a.poster_id, a.pic_id, a.gmt_create, a.gmt_modified, a.url, a.notes, 
a.type, a.indexed, a.user_id, a.user_nick, b.pic_path from poster.poster_pic a 
inner join poster.picture b on (a.pic_id = b.id) where a.poster_id = 3390 
order by a.indexed
______________ Sub-Part 1 ______________  ________ Sub-Part 1 ________
Select Type: SIMPLE                       Select Type: SIMPLE         
      Table: a                                  Table: b              
 Partitions:                               Partitions:                
       Type: ref                                 Type: eq_ref         
 Poss. Keys: PRIMARY                       Poss. Keys: PRIMARY        
      Index: PRIMARY                            Index: PRIMARY        
 Key Length: 4                             Key Length: 8              
  Index Ref: const                          Index Ref: poster.a.PIC_ID
  Row Count: 14                             Row Count: 1              
    Special: Using where; Using filesort      Special:                

Press e to explain, f for full query, o for optimized query

 

Query List (? for help)  mysql01, 75+03:16:16, 774.20 QPS, 83 thd, 5.1.24-rc-log
select a.poster_id, a.pic_id, a.gmt_create, a.gmt_modified, a.url, a.notes, 
a.type, a.indexed, a.user_id, a.user_nick, b.pic_path from poster.poster_pic a 
inner join poster.picture b on (a.pic_id = b.id) where a.poster_id = 3390 
order by a.indexed

Press e to explain, f for full query, o for optimized query

 

Query List (? for help)  mysql01, 75+03:16:16, 774.20 QPS, 83 thd, 5.1.24-rc-log
select a.poster_id, a.pic_id, a.gmt_create, a.gmt_modified, a.url, a.notes,
 a.type, a.indexed, a.user_id, a.user_nick, b.pic_path from poster.poster_pic a
 inner join poster.picture b on (a.pic_id = b.id) where a.poster_id = 3390 
order by a.indexed

Note:
select `poster`.`a`.`POSTER_ID` AS `poster_id`,`poster`.`a`.`PIC_ID` AS 
`pic_id`,`poster`.`a`.`GMT_CREATE` AS `gmt_create`,`poster`.`a`.`GMT_MODIFIED` 
AS `gmt_modified`,`poster`.`a`.`URL` AS `url`,`poster`.`a`.`NOTES` AS 
`notes`,`poster`.`a`.`TYPE` AS `type`,`poster`.`a`.`INDEXED` AS 
`indexed`,`poster`.`a`.`USER_ID` AS `user_id`,`poster`.`a`.`user_nick` AS 
`user_nick`,`poster`.`b`.`PIC_PATH` AS `pic_path` 
from `poster`.`poster_pic` `a`  join `poster`.`picture` `b`
 where ((`poster`.`b`.`ID` = `poster`.`a`.`PIC_ID`) 
and (`poster`.`a`.`POSTER_ID` = 3390)) order by `poster`.`a`.`INDEXED`

Press e to explain, f for full query, o for optimized query

那么innotop是从哪里取的数据呢?应该是通过information_schema.processlist来获得完整的sql语句,并且根据COMMAND来过滤掉空闲线程的。

mysql> desc information_schema.processlist;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| ID      | bigint(4)   | NO   |     | 0       |       | 
| USER    | varchar(16) | NO   |     |         |       | 
| HOST    | varchar(64) | NO   |     |         |       | 
| DB      | varchar(64) | YES  |     | NULL    |       | 
| COMMAND | varchar(16) | NO   |     |         |       | 
| TIME    | bigint(7)   | NO   |     | 0       |       | 
| STATE   | varchar(64) | YES  |     | NULL    |       | 
| INFO    | longtext    | YES  |     | NULL    |       | 
+---------+-------------+------+-----+---------+-------+
8 rows in set (0.00 sec)

© 著作权归作者所有

共有 人打赏支持
五大三粗
粉丝 155
博文 890
码字总数 4537901
作品 0
广州
程序员
mysql监控管理工具--innotop

author:skate time:2013/02/25 mysql监控管理工具--innotop INNOTOP是一个通过文本模式显示MySQL和InnoDB的监测工具。INNOTOP是用PERL语言写成的,这使它能更加灵活的使用在各种操作平台之...

墨梅 ⋅ 2014/03/10 ⋅ 0

mysql工具链--devops

MySQL 监控: mytop、orzdba、Percona-toolkit、Maatkit、innotop、myawr、SQL级监控mysqlpcap、拓扑可视化工具 MySQL基准测试: mysqlsla、sql-bench、Super Smack、Percona's TPCC-MYSQL ......

落叶刀 ⋅ 2016/06/03 ⋅ 0

innotop使用简介

innotop是一个mysql数据库实时监控工具,其功能强大,信息种类繁多,很能体现数据库的状态. 它实际上是一个perl脚本,整合show status/show variables/show engine innodb status输出结果并进行统...

arthur376 ⋅ 2017/04/06 ⋅ 0

MySQL系列教程(四)

文件打开数(open_files) 我们现在处理MySQL故障时,发现当Openfiles大于openfiles_limit值时,MySQL数据库就会发生卡住的现象,导致Nginx服务器打不开相应页面。这个问题大家在工作中应注意,...

lifetragedy ⋅ 2016/10/13 ⋅ 0

如何监控MySQL主从同步情况

在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成网站正常运行的重要...

lwaif ⋅ 2016/03/03 ⋅ 0

MySQL Innodb 如何找出阻塞事务源头 SQL

原文出处:潇湘隐者 在MySQL数据库中出现了阻塞问题,如何快速查找定位问题根源?在实验开始前,我们先梳理一下有什么工具或命令查看MySQL的阻塞,另外,我们也要一一对比其优劣,因为有些命...

潇湘隐者 ⋅ 05/16 ⋅ 0

系统性能分析工具--Naarad

Naarad 是高度可配置的系统分析工具,通过解析和生成时间序列数据用于可视化的展示。可对应用和服务进行性能分析。可收集如下数据: JVM 垃圾收集 (GC), System/Network (SAR), MySQL (Innot...

小编辑 ⋅ 2015/05/10 ⋅ 0

zabbix简单入门

Zabbix: 功能: 1.监控硬件、软件、业务指标; 【此功能又可称为:采样】 2.告警; 3.将数据存储下来; 4.展示; 【有云道:我们决不允许任何未经监控的系统服务甚至是业务上线;监控系统是...

网费 ⋅ 2016/05/25 ⋅ 0

php参数详解

[root@lnmp01 tools]# tar xf php-5.3.27.tar.gz解压压缩包 [root@lnmp01 tools]# cd php-5.3.27 进入php安装目录 ./configure 编译参数 –prefix=/application/php5.3.27 指定php的安装路径......

xiaofeng886 ⋅ 2017/03/24 ⋅ 0

mysql设计规范之运维规范

运维管理 – 运维规范 硬件、系统、引擎、字符集选择 硬件 性能差不多,关键是可靠性 上线前烤机测试非常重要 监控预警可有效预防故障 避免使用外部阵列 最好是2U机型,并且配备RAID卡(with...

落叶刀 ⋅ 2016/06/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部