深圳大浪有做网站的吗,哈尔滨推广优化公司,免费发布信息网站平台,微官网制作平台操作系统及MySQL数据库的实时性能状态数据尤为重要#xff0c;特别是在有性能抖动的时候#xff0c;这些实时的性能数据可以快速帮助你定位系统或MySQL数据库的性能瓶颈#xff0c;就像你在Linux系统上使用「top#xff0c;sar#xff0c;iostat」等命令工具一样#xff… 操作系统及MySQL数据库的实时性能状态数据尤为重要特别是在有性能抖动的时候这些实时的性能数据可以快速帮助你定位系统或MySQL数据库的性能瓶颈就像你在Linux系统上使用「topsariostat」等命令工具一样可以立刻定位OS的性能瓶颈是在IO还是CPU上所以收集/展示这些性能数据就更为重要那都有哪些重要的实时性能状态指标可以反应出系统和MySQL数据库的性能负载呢 目前在Linux跑MySQL是大多数互联网公司的标配以上图片的性能数据指标项是我认为在LinuxMySQLInnoDB中较为重要的实时状态数据然而在以上图片Doing一栏其实更为重要之所以把它叫做Doing是因为「processlistengine innodb statuslocks」等指标项才真正反映了MySQL此时正在做什么。 我们来对标Oracle数据库看一下在Oracle数据库中提供了「AWRASHSQL Monitor」等众多诊断工具可以一眼望穿数据库正在做什么甚至都可以知道在过去30天内任何一个时间区间的性能负载和当时数据库正在做什么。 在MySQL中虽然有像「zabbixPMM」等优秀的监控工具但它们只能反映数据库历史的一些性能数据曲线例如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下的等meminfodiskstatsuptimenetvmstat cpuinfo loadavg等文件这和pmmzabbix收集方式一致。 远程收集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-certificate
wget https://raw.githubusercontent.com/dblucyne/dodba_tools/master/doDBA.conf --no-check-certificate
chmod x doDBA
下载下来就可以直接使用不依赖于任何环境。 使用帮助 ./doDBA -help-c stringconfiguration file.(default doDBA.conf)-h stringConnect to host/IP.-sysPrint linux info.-myallPrint linux and mysql info.-mysqlPrint mysql info.-innodbPrint innodb info.-mytopPrint mysql prcesslist,like top.-i durationrefresh interval in seconds.(1s)-t intdoing on Threads_running.(50) -rds Ignore system info.-logPrint to file by day.-nocolorPrint to nocolor. 使用实例 1. 收集Linux性能数据 ./doDBA -h10.1.x.xx -sys 2. 收集MySQL性能数据 ./doDBA -h10.1.x.xx -mysql 3. 收集InnoDB性能数据 ./doDBA -h10.1.x.xx -innodb 4. 收集MySQL及Linux性能数据 ./doDBA -h10.1.x.xx -myall 5. mytop --like linux top ./doDBA -h10.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 /dev/null done 7. 收集到日志文件 ./doDBA -h10.1.x.xx -mysql -log 8. 开启Doing功能 使用【-t】参数可以基于Threads_running的数量设置阈值设置后可记录「processlistengine innodb status」信息到dodba.log日志中--复现现场。 ./doDBA -h10.1.x.xx -myall -t3 9. 查看Doing日志 tail -f dodba.log 如果你对golang感兴趣如果你对doDBA tools有问题或者建议扫描二维码可联系作者。