暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Innotop监控工具介绍

IT那活儿 2023-04-14
825

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!




简 介



Innotop是一款Perl脚本编写、开源功能强大的MySQL的监控工具。它拥有功能强大,配置简单,易于使用等等特性。INNOTOP是用PERL语言写成的,通过文本模式,它能详细的监控出当前MYSQL和INNODB运行的状态,以便维护人员根据结果合理的优化MYSQL,让MYSQL更稳定更高效的运行。




安装innotop



1. innotop下载

下载地址:https://github.com/innotop/innotop

Github上提供两种版本:
  • 一种是开发版(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

至此,innotop安装完成



innotop使用



1. 帮助信息

Innotop的帮助信息可以通过下面几种方式:
  • 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中读出的数据量。

--查询列表部分(通过执行show full processlist语句抓取)
  • 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那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论