介绍MySQL的实时性能监控利器

2022-03-16 0 750

介绍MySQL的实时性能监控利器

操作系统及mysql数据库的实时性能状态数据尤为重要,特别是在有性能抖动的时候,这些实时的性能数据可以快速帮助你定位系统或MySQL数据库的性能瓶颈,就像你在Linux系统上使用「top,sar,iostat」等命令工具一样,可以立刻定位OS的性能瓶颈是在IO还是CPU上,所以收集/展示这些性能数据就更为重要,那都有哪些重要的实时性能状态指标可以反应出系统和MySQL数据库的性能负载呢?

介绍MySQL的实时性能监控利器

目前在Linux跑MySQL是大多数互联网公司的标配,以上图片的性能数据指标项是我认为在Linux,MySQL,InnoDB中较为重要的实时状态数据,然而在以上图片Doing一栏其实更为重要,之所以把它叫做Doing,是因为「processlist,engine innodb status,locks」等指标项才真正反映了MySQL此时正在做什么。

介绍MySQL的实时性能监控利器

我们来对标Oracle数据库看一下,在Oracle数据库中提供了「AWR,ASH,SQL Monitor」等众多诊断工具,可以一眼望穿数据库正在做什么,甚至都可以知道在过去30天内任何一个时间区间的性能负载和当时数据库正在做什么。

在MySQL中虽然有像「zabbix,PMM」等优秀的监控工具,但它们只能反映数据库历史的一些性能数据曲线,例如,TPS高了,临时表使用多了,有InnoDB Deadlocks,但对于MySQL当时的Doing,我只能说不够直接。如果你在现场,你可以抓到MySQL正在做什么,但是,你总有不在现场的时候,如果问你昨天晚上数据库的性能抖动是什么原因?怎样快速重现现场找到引起抖动的原因呢?

答案是可以使用「doDBA tools」,这是一款免费的基于控制台监控工具。

doDBA tools是什么

doDBA tools是一个基于控制台的远程监控工具,它不需要在本地/远程系统上安装任何软件,它可以实时收集操作系统、MySQL、InnoDB的实时性能状态数据,并可以生成Doing日志文件,来帮助你快速了解/优化系统及MySQL数据库。

特点

基于golang语言开发可收集Linux、MySQL相关性能数据可本地或远程收集,可多台mytop --Like Linux TOP基于并发生成Doing日志,复现现场可记录到日志文件doDBA tools 工作原理

远程收集系统信息是通过ssh(用户名密码或建立信任)的方式连接到远程服务器上收集,收集的方法都是通过读取Linux的proc下的等meminfo,diskstats,uptime,net,vmstat ,cpuinfo ,loadavg等文件,这和pmm,zabbix收集方式一致。

远程收集MySQL信息是通过 MySQL tcp连接到MySQL数据库上收集,只需要授予连接用户PROCESS、SELECT权限即可。

系统信息和MySQL信息的收集可以分离,如果只想收集系统信息,只需要提供系统用户名密码即可,如果只收集MySQL可以只提供MySQL连接信息,如果是rds用户,可以使用-rds参数,在使用mytop时会自动忽略系统信息的收集。

如何使用

Github主页:https://github.com/dblucyne/dodba_toolsDownload:wget https://raw.githubusercontent.com/dblucyne/dodba_tools/master/doDBA --no-check-certificatewget https://raw.githubusercontent.com/dblucyne/dodba_tools/master/doDBA.conf --no-check-certificatechmod +x doDBA

下载下来就可以直接使用,不依赖于任何环境。

使用帮助:

./doDBA -help  -c string    configuration file.(default "doDBA.conf")  -h string    Connect to host/IP.  -sys    Print linux info.  -myall    Print linux and mysql info.  -mysql    Print mysql info.  -innodb    Print innodb info.  -mytop    Print mysql prcesslist,like top.  -i duration    refresh interval in seconds.(1s)  -t int    doing on Threads_running.(50)   -rds           Ignore system info.  -log    Print to file by day.  -nocolor    Print to nocolor.

使用实例

1. 收集Linux性能数据

./doDBA -h=10.1.x.xx -sys

介绍MySQL的实时性能监控利器

2. 收集MySQL性能数据

./doDBA -h=10.1.x.xx -mysql

介绍MySQL的实时性能监控利器

3. 收集InnoDB性能数据

./doDBA -h=10.1.x.xx -innodb

介绍MySQL的实时性能监控利器

4. 收集MySQL及Linux性能数据

./doDBA -h=10.1.x.xx -myall

介绍MySQL的实时性能监控利器

5. mytop –like linux top

./doDBA -h=10.1.x.xx -mytop

介绍MySQL的实时性能监控利器

6. 借助Shell收集多台

cat ip.txt10.1.x.x110.1.x.x2Shellcat ip.txt | while read ip;  do  echo $ip; ./doDBA -h=$ip -mysql -log </dev/null &  done

7. 收集到日志文件

./doDBA -h=10.1.x.xx -mysql -log

介绍MySQL的实时性能监控利器

8. 开启Doing功能

使用【-t】参数可以基于Threads_running的数量设置阈值,设置后可记录「processlist,engine innodb status」信息到dodba.log日志中,–复现现场。

/doDBA -h=10.1.x.xx -myall -t=3

介绍MySQL的实时性能监控利器

9. 查看Doing日志

tail -f dodba.log

介绍MySQL的实时性能监控利器

介绍MySQL的实时性能监控利器

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 介绍MySQL的实时性能监控利器 https://www.jike1995.com/32478.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务