• ADADADADAD

    doDBA tools,全新的MySQL实时性能监控利器[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:14:33

    作者:文/会员上传

    简介:

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

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    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时会自动忽略系统信息的收集。


    如何使用doDBAGithub主页:
    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 stringconfiguration file. (default "doDBA.conf") -h stringConnect to host/IP. -sysPrint system info. -myallPrint system and mysql info. -mysqlPrint mysql info. -innodbPrint innodb info. -mytopPrint mysql prcesslist info , like top. -i durationrefresh interval in seconds. (default 1s) -t intdoing on Threads_running. (default 50) -rdsIgnore system info. -logPrint to file by day. -nocolorPrint 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;doecho $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


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

    微信扫一扫
    关注该公众号

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

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqldodbatools