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
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.conf配置文件中先把需要设置的信息填写好。
{
"Host":"",
"Huser": "root",
"Hport": "22",
"Hpwd": "",
"Muser": "root",
"Mpwd": "123456",
"Mport":"3306"
}
使用帮助:
$ ./doDBA --help
Usage of ./doDBA:
-c string
configuration file. (default "doDBA.conf")
-h string
Connect to host/IP.
-hP string
Connect host port. (default "22")
-help
Display this help.
-hp string
Connect host password.
-hu string
Connect host user. (default "root")
-i duration
refresh interval in seconds. (default 1ns)
-innodb
Print innodb info.
-log
Print to file by day.
-mP string
Connect mysql port. (default "3306")
-mp string
Connect mysql password.
-mu string
Connect mysql user.
-myall
Print system and mysql info.
-mysql
Print mysql info.
-mytop
Print mysql prcesslist info , like top.
-nocolor
Print nocolor.
-rds
Ignore system info.
-sys
Print system info.
-t int
mysql trace on Threads_running. (default 50)
使用实例
1. 收集Linux性能数据
$ ./doDBA -h=127.0.0.1 -sys DoDBA tools on host 127.0.0.1
---------+----load--avg----+-----cpu-usage-----+--swap--+----net----+-----------IO-----------
time | 1m 5m 10m| usr sys iow ide| si so| recv send| r/s w/s rb/s wb/s
---------+-----------------+-------------------+--------+-----------+------------------------
19:23:51 | 1.35 0.72 0.41| 4.2 3.0 3.2 89.6| 0 0|16384.0P16384.0P| 48 2396 768K 69.2M
19:23:52 | 1.35 0.72 0.41| 4.8 2.9 3.1 89.2| 0 0|16384.0P16384.0P| 68 2502 1.1M 71.1M
2. 收集MySQL性能数据
$ ./doDBA -h=127.0.0.1 -mysql DoDBA tools on host 127.0.0.1
---------+-------mysql-status-------+-----threads-----+-----slow-----+---bytes---+---------locks----------
time | QPS TPS ins upd del| run con cre cac| sql tmp Dtmp| recv send| lockI lockW openT openF
---------+--------------------------+-----------------+--------------+-----------+------------------------
19:27:32 | 25 11 0 11 0| 3 99 0 6| 0 1 0| 5K 37K| 36 0 538 93
19:27:33 | 37 152 13 5 134| 3 99 0 6| 0 5 1| 35K 396K| 216 0 538 93
19:27:34 | 39 60 8 8 44| 4 99 0 6| 0 5 0| 26K 220K| 115 0 538 93
3. 收集InnoDB性能数据
$ ./doDBA -h=127.0.0.1 -innodb DoDBA tools on host 127.0.0.1
---------+------innodb--rows-----+---------innodb--pages--------+-------innodb--data-------+--innodb-log--
time | read ins upd del| data free dirty flush|reads writes read written|fsyncs written
---------+-----------------------+------------------------------+--------------------------+--------------
19:30:00 | 4741 458 32 0| 350602 8195 18869 125| 0 141 0K 4.0M| 1 66K
19:30:01 | 106 521 3 0| 350602 8195 18858 137| 0 151 0K 4.4M| 1 72K
19:30:02 | 7982 406 40 2| 350603 8194 18860 160| 0 202 0K 5.1M| 3 84K
4. 收集MySQL及Linux性能数据
$ ./doDBA -h 127.0.0.1 -myall
5. mytop –like linux top
$ ./doDBA -h 127.0.0.1 -mytop DoDBA tools -19:32:36 on host 127.0.0.1 UP 61 days Load: 0.64 0.75 0.63
CPU: 1.99% user, 2.84% sys, 0.00% nice, 0.28% iowait, 94.89% idle
Mem: 23.3G total, 23.0G used, 317.6M free, 0K buffers
Swap: 24.0G total, 0K used, 24.0G free, 13.2G Cached
MySQL: 16 QPS, 20 TPS, 0 slowSQL, 2 run ID USER IP/HOST DB Time State SQL
-- ---- ------- -- ---- ----- ---
2495440 zabbix 127.0.0.1 0 init show full processlist
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=127.0.0.1 -mysql -log $ cat 127001_dodba_mysql_20161219.log
DoDBA tools on host 127.0.0.1
---------+-------mysql-status-------+-----threads-----+-----slow-----+---bytes---+---------locks----------
time | QPS TPS ins upd del| run con cre cac| sql tmp Dtmp| recv send| lockI lockW openT openF
---------+--------------------------+-----------------+--------------+-----------+------------------------
19:35:30 | 23 15 10 5 0| 3 98 0 7| 0 2 1| 9K 8.0M| 43 0 538 95
19:35:31 | 53 19 5 14 0| 2 98 0 7| 0 3 0| 38K 1.7M| 86 0 538 93
8. 开启Doing功能
使用【-t】参数可以基于Threads_running的数量设置阈值,设置后可记录「processlist,engine innodb status」信息到dodba.log日志中,–重现现场。
$ ./doDBA -h=127.0.0.1 -mysql -t=3
9. 查看Doing日志
$ tail -f dodba.log
2016/12/19 19:51:52 ----------------processlist---------------
ID:2314306
User:zabbix
Host:localhost
DB:zabbix
Command:Query
Time:0
State:update
Info:insert into history_uint (itemid,clock,ns,value) values (35632,1482148312,240404292,274)
MySQL实时性能监控工具doDBA tools的更多相关文章
- MySQL 的实时性能监控利器【转】
操作系统及MySQL数据库的实时性能状态数据尤为重要,特别是在有性能抖动的时候,这些实时的性能数据可以快速帮助你定位系统或MySQL数据库的性能瓶颈,就像你在Linux系统上使用「top,sar,io ...
- MySQL 的实时性能监控利器
操作系统及MySQL数据库的实时性能状态数据尤为重要,特别是在有性能抖动的时候,这些实时的性能数据可以快速帮助你定位系统或MySQL数据库的性能瓶颈,就像你在Linux系统上使用「top,sar,io ...
- MySQL性能监控工具-Spotlight on MySQL
原文地址:http://blog.csdn.net/k_scott/article/details/8167018 这是我的第二款用于监控MySQL数据库性能的工具:Spotlight on MySQ ...
- 深入理解JVM—性能监控工具
(转自:http://yhjhappy234.blog.163.com/blog/static/31632832201222691738865/) 我们知道,在JVM编译期和加载器,甚至运行期已经做了 ...
- 软件性能测试技术树(三)----数据库(MySQL)性能
全图: MySQL重点监控指标: MySQL主流分支: 数据库架构设计: MySQL慢查询: SQL语句分析与调优: MySQL索引: MySQL存储引擎: MySQL实时监控: MySQL集群监控工 ...
- ASP.NET 性能监控工具和优化技巧
转载自:http://blog.haoitsoft.com/index.php/archives/657 ASP.NET 性能监控工具和优化技巧 发表回复 为了阐明准确甄别性能问题的重要性,下面列举了 ...
- 20个常用Linux性能监控工具/命令
20个常用Linux性能监控工具/命令 对于 Linux/Unix 系统管理员非常有用的并且最常用的20个命令行系统监视工具.这些命令可以在所有版本的 Linux 下使用去监控和查找系统性能的实际原因 ...
- 你值得拥有:25个Linux性能监控工具
一.基于命令行的性能监控工具 1.dstat - 多类型资源统计工具 该命令整合了vmstat,iostat和ifstat三种命令.同时增加了新的特性和功能可以让你能及时看到各种的资源使用情况,从而能 ...
- 使用pt-stalk分析MySQL的性能波动 (转)
简介 在MySQL服务器出现短暂(5~30秒)的性能波动的时候,一般的性能监控工具都很难抓住故障现场,也就很难收集对应较细粒度的诊断信息.另外,如果这种波动出现的频率很低,例如几天才一次,我们也很难人 ...
随机推荐
- C++11写算法之冒泡排序
冒泡排序很形象,指从数组后面将更小的值慢慢浮到前面去,每遍历一趟使得最小值浮到最前面(指当前位置). 这里有点小技巧,当某一次遍历过程中发现无交换,则说明此时数组已经排序完成,可提前退出. 时间复杂度 ...
- Jmeter BeanShell 引用变量报错jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Parse error at line 14, column 181 : Error or number too big for integer
如果你通过CSV Data Set Config或者_StringFromFile函数来参数化你的请求,需要特别注意当参数为纯数字时,jmeter会默认将其识别成int型数据,说明jmeter并不是默 ...
- cocos2D 虚拟摇杆Joystick功能实现
@implementation InputLayer - (id)init { if(self = [super init]) { ...
- django startapp报 maximum recursion depth exceeded
报错截图如下: 解决办法:修改指定路径下的functools.py文件的def total_ordering(cls):方法: 原来的样子: convert = { '__lt__': [('__gt ...
- SQL实战
一.表关系 二.操作表 1.自行创建测试数据 表结构和数据 SET NAMES utf8;SET FOREIGN_KEY_CHECKS = 0; -- ------------------------ ...
- Laravel 出现"RuntimeException inEncrypter.php line 43: The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths."问题的解决办法
如果输入命令:php artisan key:generate 还是报错 那就要从别的项目里复制一个key到.env中,然后再运行命令:composer update和php artisan key: ...
- 请听一个故事------>你真的认为iPhone只是一部手机?苹果惊天秘密!!
在网上看到的一篇小说,感觉有点意思,转载过来大家一起围观下,作者很幽默很风趣. 导读:iPhone的隐藏功能!Jobs的军方身份!图灵服毒自杀的传奇故事!中兴华为的神秘背景! 你真的认为iPhone只 ...
- java NIO 模型(一)
1. 阻塞I/O通信模型 1.性能:一连接一线程模型导致服务端的并发接入数和系统吞吐量受到极大限制 2.可靠性:由于IO操作采用同步阻塞模式,当网络拥塞或者逻辑处理缓慢会导致IO线程被挂住,阻塞时间无 ...
- JavaWeb—Servlet
1.什么是Servlet 用来扩展web服务器功能的组件——早期的web服务器只能处理静态资源的请求,即需要事先将html文件准备好,并存放到web服务器上面.不能够处理动态资源的请求(需要计算,动态 ...
- boost之数据结构和容器
1.静态数组array,boost对静态数组进行了封装,使用和普通数组一样的初始化式进行初始化. #include <iostream> #include <boost/array. ...