千家信息网

doDBA tools,全新的MySQL实时性能监控利器

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,http://mp.weixin.qq.com/s?__biz=MjM5NzAzMTY4NQ==&mid=2653929717&idx=1&sn=0774d10e4e2271334dd7fd1c4c7
千家信息网最后更新 2026年11月02日doDBA tools,全新的MySQL实时性能监控利器

http://mp.weixin.qq.com/s?__biz=MjM5NzAzMTY4NQ==&mid=2653929717&idx=1&sn=0774d10e4e2271334dd7fd1c4c792813&chksm=bd3b5a9f8a4cd389ff9e82d1be2b5984afb903fbd2e1c55306e04b97a12d573a354ed75fba30#rd


doDBA tools,全新的MySQL实时性能监控利器

2016-12-16 卢飞 老叶茶馆

作者:卢飞,数据库技术专家,Oracle ACE-A,Go语言爱好者


卢飞是老叶在搜狐畅游期间的同事,工作和学习能力都很强

操作系统及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相关性能数据

  • 可本地或远程收集,可多台

  • 提供类似Linux top的mytop的功能

  • 基于并发生成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时会自动忽略系统信息的收集。


如何使用doDBA
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 system info.  -myall        Print system and mysql info.  -mysql        Print mysql info.  -innodb        Print innodb info.  -mytop        Print mysql prcesslist info , like top.  -i duration        refresh interval in seconds. (default 1s)  -t int        doing on Threads_running. (default 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.x110.1.x.x2
Shell
cat ip.txt | while read ip;  do  echo $ip; ./doDBA -h=$ip -mysql -log 

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



如果你对golang感兴趣,如果你对doDBA tools有问题或者建议,扫描二维码,可联系作者。

微信扫一扫
关注该公众号

数据 性能 数据库 系统 信息 实时 日志 重要 工具 监控 文件 正在 状态 用户 指标 帮助 操作系统 作者 功能 原因 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网企业 互联网科技有限公司经营范围 紫鲸互联网科技 互联网科技上市公司 菲比寻常互联网科技 中国最先进互联网科技公司 博兴的互联网电子科技公司 互联网软件和科技 昭通互联网科技选哪家 荆州市昕露互联网络科技有限公司 厦门千工互联网科技有限公司 花神(南京)互联网科技有限公司 允成互联网科技有限公司融资 互联网公司黑科技创始人 科技互联网的核心竞争力 广州富喜互联网络科技 云南省自由互联网科技有限公司 有人说阿里系是互联网科技企业 北京互联网科技类企业分布 平安好医生打造互联网科技医疗 互联网科技行业发展 圆梦互联网科技 丰台科技园 互联网 郑州华宇互联网科技 坤平互联网科技 朱啸虎曾投资哪些互联网科技企业 黑云互联网科技有限公司 保山互联网科技靠谱吗 互联网科技和医药行业 网互联网络科技
0