《监控利器:详解MysqL 的实时性能监控好工具》要点:
本文介绍了监控利器:详解MysqL 的实时性能监控好工具,希望对您有用。如果有疑问,可以联系我们。
*** 作系统及MysqL数据库的实时性能状态数据尤为重要,特别是在有性能抖动的时候,这些实时的性能数据可以快速帮助你定位系统或MysqL数据库的性能瓶颈,就像你在linux系统上使用「top,sar,iostat」等命令工具一样,可以立刻定位OS的性能瓶颈是在IO还是cpu上,所以收集/展示这些性能数据就更为重要,那都有哪些重要的实时性能状态指标可以反应出系统和MysqL数据库的性能负载呢?
目前在linux跑MysqL是大多数互联网公司的标配,以上图片的性能数据指标项是我认为在linux,MysqL,InnoDB中较为重要的实时状态数据,然而在以上图片Doing一栏其实更为重要,之所以把它叫做Doing,是因为「processList,engine innodb status,locks」等指标项才真正反映了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_tools
Download:
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
2. 收集MysqL性能数据
./doDBA -h=10.1.x.xx -MysqL
3. 收集InnoDB性能数据
./doDBA -h=10.1.x.xx -innodb
4. 收集MysqL及linux性能数据
./doDBA -h=10.1.x.xx -myall
5. mytop --like linux top
./doDBA -h=10.1.x.xx -mytop
6. 借助Shell收集多台
cat ip.txt
10.1.x.x1
10.1.x.x2
Shell
cat 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
8. 开启Doing功能
使用【-t】参数可以基于Threads_running的数量设置阈值,设置后可记录「processList,engine innodb status」信息到dodba.log日志中,--复现现场.
./doDBA -h=10.1.x.xx -myall -t=3
9. 查看Doing日志
tail -f dodba.log
原文来自:https://yq.aliyun.com/articles/67051
内存溢出PHP培训学院每天发布《监控利器:详解MysqL 的实时性能监控好工具》等实战技能,PHP、MysqL、liNUX、APP、Js,CSS全面培养人才。
总结以上是内存溢出为你收集整理的监控利器:详解MySQL 的实时性能监控好工具全部内容,希望文章能够帮你解决监控利器:详解MySQL 的实时性能监控好工具所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)