doDBA工具使用详解
1.简介
- doDBA 工具是一个基于命令行的远程系统监控工具。不依赖远程服务器的软件运行。它能实时的收集Linux和MySQL的性能数据。并可以生成一个执行文件来帮助您分析MySQL数据库。
- 这个程序是免费软件。
- doDBA是用go编写的。
2.下载
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
或者
git pull https://github.com/dblucyne/dodba_tools
3.使用帮助
./doDBA -help
-help # 显示帮助
-c string # 指定配置文件 (default "doDBA.conf")
-h string # 连接的 host/IP
-sys # 打印Linux的信息
-myall # 打印Linux和MySQL的信息
-mysql # 打印MySQL的信息
-innodb # 打印InnoDB存储引擎的信息
-mytop # 打印MySQL processlist,类似top
-i <duration> # 刷新间隔的秒数 (默认1s)
-t <int> #当MySQL Threads_running到达阈值时会输出 show processlist和showengine innodb status到dodba.log中 (默认50)
-hP <string> # 主机端口 (默认 "22")
-hp <string> # 主机密码
-hu <string> # 主机用户 (默认 "root")
-mP <string> # MySQL端口 (默认 "3306")
-mp <string> # MySQL密码
-mu <string> # MySQL用户
-rds # 忽略Linux信息
-log # 按照日期输出到日志文件
-nocolor # 不加颜色输出
4.配置
4.1.模板
cat doDBA.conf
{
"Host":"",
"Huser": "root",
"Hport": "22",
"Hpwd": "",
"Muser": "dodba",
"Mpwd": "dodba",
"Mport":"3306"
}
4.2.启动命令
./doDBA -c=doDBA.conf
5.部署流程
5.1.下载
5.2.选定被监控主机
5.3.在被监控主机上添加Linux用户、MySQL 用户
Linux:
groupadd dodba
useradd dodba -g dodba
echo xxxx | passwd dbdba --stdin
MySQL:
create user dodba@’xxx.xxx.xxx.%’ identified by ‘dodba’;
grant process on *.* to dodba@'xxx.xxx.xxx.%';
5.4.配置SSH互信
5.5.配置doDBA配置文件,并修改对应参数
5.6.创建日志目录,按照业务、主机、实例等分别创建
mkdir -p /data/doDBA_log/piwik/mysql{1,2}_log/{myall,innodb}
5.7.启动doDBA
- 建议将doDBA安装在某一台主机上,监控其他被监控主机及数据库
5.7.1. 启动脚本,配置了 myall 和 innodb 数据源
cat start_doDBA.sh
#!/bin/bash
host_ip=("10.10.xx.xx")
INST_NAME="xxx"
data_source=("myall","innodb")
for IP in ${host_ip[@]}
for SRC in ${data_source[@]}
do
cd /data/doDBA_log/${inst_name}/mysql1_log/myall/
./doDBA -h ${IP} -c /data/doDBA_log/${INST_NAME}/mysql1_log/${SRC}/${INST_NAME}_doDBA.conf -$SRC -t=20 -log &
done
5.8.编辑kill doDBA和start doDBA脚本,已便每天生成一个日志文件。
cat kill_doDBA.sh
#!/bin/bash
ps -ef | grep doDBA | grep -v grep | awk '{print $2}' | xargs kill -9 >/dev/null 2>&1
5.9.配置crontab定时任务。
crontab -e
0 0 # # # sh kill_doDBA.sh
1 0 # # # sh start_doDBA.sh
6.数据源参数优先级
- 经过实际测试,一个 doDBA 进程同时只能配置一个数据源参数,配置2个及以上时,只能生效一个,说明参数有优先级的区别。
- 优先级如下:
- mysql > innodb > myall > sys
7.使用示例
7.1. 数据源:mysql
7.1.1. 启动命令
./doDBA -c doDBA.conf -mysql -log
7.1.2.doDBA 发送给 MySQL 的查询语句
show global status
where
Variable_name in (
"Com_select",
"Com_insert",
"Com_update",
"Com_delete",
"Innodb_buffer_pool_read_requests",
"Innodb_buffer_pool_reads",
"Innodb_rows_inserted",
"Innodb_rows_updated",
"Innodb_rows_deleted",
"Innodb_rows_read",
"Threads_running",
"Threads_connected",
"Threads_cached",
"Threads_created",
"Bytes_received",
"Bytes_sent",
"Innodb_buffer_pool_pages_data",
"Innodb_buffer_pool_pages_free",
"Innodb_buffer_pool_pages_dirty",
"Innodb_buffer_pool_pages_flushed",
"Innodb_data_reads",
"Innodb_data_writes",
"Innodb_data_read",
"Innodb_data_written",
"Innodb_os_log_fsyncs",
"Innodb_os_log_written",
"Slow_queries",
"Created_tmp_disk_tables",
"Created_tmp_tables",
"Open_tables",
"Open_files",
"Table_locks_immediate",
"Table_locks_waited"
);
7.1.3. 输出
7.1.4.每列含义
mysql-status
- qps —— Com_select
- tps —— Com_insert + Com_update + Com_delete
- ins —— Com_insert
- upd —— Com_update
- del —— Com_delete
threads
- run —— Threads_running
- con —— Threads_connected
- cre —— Threads_created
- cac —— Threads_cached
slow
- sql —— Slow_queries
- tmp —— Created_tmp_tables
- dtmp —— Created_tmp_disk_tables
bytes
- recv —— Bytes_received
- send —— Bytes_sent
locks
- lockI —— Table_locks_immediate
- lockW —— Table_locks_waited
- openT —— Open_tables
- openF —— Open_files
7.2.数据源:innodb
7.2.1.启动命令
./doDBA -c doDBA.conf -innodb -log
7.2.2.doDBA 发送给 MySQL 的查询语句(同7.1.2)
show global status
where
Variable_name in (
"Com_select",
"Com_insert",
"Com_update",
"Com_delete",
"Innodb_buffer_pool_read_requests",
"Innodb_buffer_pool_reads",
"Innodb_rows_inserted",
"Innodb_rows_updated",
"Innodb_rows_deleted",
"Innodb_rows_read",
"Threads_running",
"Threads_connected",
"Threads_cached",
"Threads_created",
"Bytes_received",
"Bytes_sent",
"Innodb_buffer_pool_pages_data",
"Innodb_buffer_pool_pages_free",
"Innodb_buffer_pool_pages_dirty",
"Innodb_buffer_pool_pages_flushed",
"Innodb_data_reads",
"Innodb_data_writes",
"Innodb_data_read",
"Innodb_data_written",
"Innodb_os_log_fsyncs",
"Innodb_os_log_written",
"Slow_queries",
"Created_tmp_disk_tables",
"Created_tmp_tables",
"Open_tables",
"Open_files",
"Table_locks_immediate",
"Table_locks_waited"
);
7.2.3.输出
7.2.4.每列含义
innodb--rows
- read —— Innodb_rows_read
- ins —— Innodb_rows_inserted
- upd —— Innodb_rows_updated
- del —— Innodb_rows_deleted
innodb--pages
- data —— Innodb_buffer_pool_pages_data
- free —— Innodb_buffer_pool_pages_free
- dirty —— Innodb_buffer_pool_pages_dirty
- flush —— Innodb_buffer_pool_pages_flushed
innodb--data
- reads —— Innodb_data_reads
- writes —— Innodb_data_writes
- read —— Innodb_data_read
- written —— Innodb_data_written
innodb-log
- fsyncs —— Innodb_os_log_fsyncs
- written —— Innodb_os_log_written
7.3.数据源:sys
7.3.1.命令
./doDBA -c doDBA.conf -sys -log
7.3.2.输出
7.4.数据源:myall
7.4.1.命令
./doDBA -c doDBA.conf -myall -log
7.4.2.doDBA 发送给 MySQL 的查询语句(同7.1.2)
show global status
where
Variable_name in (
"Com_select",
"Com_insert",
"Com_update",
"Com_delete",
"Innodb_buffer_pool_read_requests",
"Innodb_buffer_pool_reads",
"Innodb_rows_inserted",
"Innodb_rows_updated",
"Innodb_rows_deleted",
"Innodb_rows_read",
"Threads_running",
"Threads_connected",
"Threads_cached",
"Threads_created",
"Bytes_received",
"Bytes_sent",
"Innodb_buffer_pool_pages_data",
"Innodb_buffer_pool_pages_free",
"Innodb_buffer_pool_pages_dirty",
"Innodb_buffer_pool_pages_flushed",
"Innodb_data_reads",
"Innodb_data_writes",
"Innodb_data_read",
"Innodb_data_written",
"Innodb_os_log_fsyncs",
"Innodb_os_log_written",
"Slow_queries",
"Created_tmp_disk_tables",
"Created_tmp_tables",
"Open_tables",
"Open_files",
"Table_locks_immediate",
"Table_locks_waited"
);
7.4.3.输出
7.4.5.文本输出(GitHub示例)
7.4.5.1.普通输出
/doDBA -h=10.1.xx.xx -myall
DoDBA tools on host 10.1.xx.xx
---------+---load--avg---+-----cpu-usage-----+-swap+----net----+----mysql-status-------+-slow---th---+---bytes---
time | 1m 5m 10m | usr sys iow ide | si so| recv send | QPS TPS ins upd del| sql run con | recv send
--------+-----------------+----------------------+------+------------+------------------------+---------------+-----------
13:52:00 | 4.00 3.68 3.60| 0.7 0.3 0.0 99.0 | 0 0 | 316K 4.3M| 203 58 22 36 0 | 0 2 52 | 86K 1.8M
13:52:01 | 4.00 3.68 3.60| 5.3 0.3 0.1 94.3 | 0 0 | 275K 2.0M| 251 67 27 40 0 | 0 3 76 | 104K 3.2M
13:52:02 | 4.00 3.68 3.60| 6.4 0.5 0.1 93.0 | 0 0 | 371K 4.1M| 380 810 24 786 0 | 0 3 40 | 311K 5.0M
13:52:03 | 4.00 3.68 3.60| 5.4 0.4 0.0 94.2 | 0 0 | 510K 4.2M| 648 283 30 253 0 | 1 3 52 | 216K 1.4M
13:52:04 | 4.00 3.68 3.60| 5.7 0.4 0.0 93.8 | 0 0 | 385K 2.7M| 108 69 45 24 0 | 0 4 48 | 71K 2.1M
13:52:05 | 3.92 3.66 3.59| 6.2 0.5 0.0 93.3 | 0 0 | 206K 2.0M| 339 96 52 44 0 | 0 3 37 | 107K 1.9M
7.4.5.2.忽略操作系统信息
./doDBA -h=10.1.xx.xx -myall -rds
DoDBA tools on host 10.1.xx.xx
---------+----load--avg----+-----cpu-usage-----+swap+----net----+-----mysql-status------+-slow---th---+---bytes---
time | 1m 5m 10m | usr sys iow ide|siso| recv send|QPS TPS ins upd del| sql run con| recv send
---------+------------------+-------------------+----+-----------+-----------------------+-------------+-----------
17:19:17 | 0.00 0.00 0.00 | 0.0 0.0 0.0 0.0 | 0 0 | 0K 0K | 144 155 73 82 0 | 0 1 5 | 113K 229K
17:19:18 | 0.00 0.00 0.00 | 0.0 0.0 0.0 0.0 | 0 0 | 0K 0K | 66 113 32 81 0 | 0 2 6 | 79K 109K
17:19:19 | 0.00 0.00 0.00 | 0.0 0.0 0.0 0.0 | 0 0 | 0K 0K | 273 117 30 87 0 | 1 2 20 | 135K 502K
17:19:20 | 0.00 0.00 0.00 | 0.0 0.0 0.0 0.0 | 0 0 | 0K 0K | 207 173 74 99 0 | 1 2 17 | 137K 279K
17:19:21 | 0.00 0.00 0.00 | 0.0 0.0 0.0 0.0 | 0 0 | 0K 0K | 161 233 105 128 0 | 0 1 5 | 146K 193K
7.4.5.3.加入 doing 选项,当 Thread_running >= 3 时,执行show processlist 和 show engine innodb status
./doDBA -h=10.1.xx.xx -myall -t=3
2016/12/14 11:47:52 ----------------processlist---------------
ID:606374462
User:ums_read
Host:10.1.xx.xx:31886
DB:mia
Command:Query
Time:3121
State:Sending data
Info:SELECT ......................
=====================================
2016-12-14 11:49:16 7f93ece24700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 1 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 11256164 srv_active, 0 srv_shutdown, 27867 srv_idle
srv_master_thread log flush and writes: 11284031
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 1562657988
OS WAIT ARRAY INFO: signal count 11589318962
Mutex spin waits 7915500772, rounds 7044249291, OS waits 29061199
RW-shared spins 15964124137, rounds 99809511531, OS waits 1188604739
RW-excl spins 1056480533, rounds 26766008869, OS waits 261290579
........................................
7.5.数据源:mytop
7.5.1.命令
./doDBA -c doDBA.conf -mytop
7.5.3.注意事项
- mytop的输出类似 top 命令,是实时刷新的,不能加 -log 选项
doDBA工具使用详解的更多相关文章
- Linux命令工具 top详解
Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...
- Lua包管理工具Luarocks详解 - 15134559390的个人空间 - 开源中国社区
Lua包管理工具Luarocks详解 - 15134559390的个人空间 - 开源中国社区 Lua包管理工具Luarocks详解
- [转]网络性能评估工具Iperf详解(可测丢包率)
原文链接:安全运维之:网络性能评估工具Iperf详解:http://os.51cto.com/art/201410/454889.htm 参考博文:http://linoxide.com/monito ...
- IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)
来源: http://www.cnblogs.com/JustinYoung/archive/2009/04/03/kaifarenyuangongju2.html 在上一篇文章IE8“开发人员工具” ...
- IE8“开发人员工具”使用详解上(各级菜单详解)
来源: http://www.cnblogs.com/JustinYoung/archive/2009/03/24/kaifarenyuangongju.html IE8“开发人员工具”使用详解上(各 ...
- 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)
. 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...
- 批量执行工具PSSH详解
批量执行工具PSSH详解 pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,使用必须在各个服务器上配置好密钥认证访问. 安装pssh包 yum 安 ...
- 自动化运维工具——ansile详解
自动化运维工具——ansible详解(一) 目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ...
- 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解
. 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...
随机推荐
- 11-ESP8266 SDK开发基础入门篇--软硬件定时器
https://www.cnblogs.com/yangfengwu/p/11094009.html 定时器有两种,软件定时器和硬件定时器 软件定时器就是靠里面的任务延时实现的,,这样的定时器其实延时 ...
- 市场细分(Market Segmentation)
什么是市场细分? 市场细分其实就是把拥有共同特征的人分在一起.这些共同特征可以是:喜欢喝某个牌子的红酒,飞机总是做头等舱,习惯用windows系统等等. 市场细分有什么用? 1,不同细分市场的需求存在 ...
- 机器学习---三种线性算法的比较(线性回归,感知机,逻辑回归)(Machine Learning Linear Regression Perceptron Logistic Regression Comparison)
最小二乘线性回归,感知机,逻辑回归的比较: 最小二乘线性回归 Least Squares Linear Regression 感知机 Perceptron 二分类逻辑回归 Binary Logis ...
- mysql 选出前五个元素
mysql> select * from test; +----+----------+-------+-----------+ | id | name | score | subject | ...
- 在js中添加HTML类样式
有时候需要给元素添加类样式,但又要保留之前的类,可以使用element.classList.add("类名");
- java spring学习
目的:为后面学习spring mvc ssm spring boot 打基础. 从单词就能看到有s,记录自学过程,感慨spring 一篇文章都写不完 介绍(来源百度百科): Spring是一个开源框架 ...
- javaagent使用指南
今天打算写一下 Javaagent,一开始我对它的概念也比较陌生,后来在别人口中听到 字节码插桩,bTrace,Arthas后面才逐渐了解到Java还提供了这么个工具. JVM启动前静态Instrum ...
- Spark2.x(五十五):在spark structured streaming下sink file(parquet,csv等),正常运行一段时间后:清理掉checkpoint,重新启动app,无法sink记录(file)到hdfs。
场景: 在spark structured streaming读取kafka上的topic,然后将统计结果写入到hdfs,hdfs保存目录按照month,day,hour进行分区: 1)程序放到spa ...
- 第2课第7节_Java面向对象编程_内部类_P【学习笔记】
摘要:韦东山android视频学习笔记 1.什么是内部类:在类的内部定义一个类,内部类可以访问类的私有属性 class Outer{ ; class Inner{ public void print ...
- ElasticSearch5.2.2 安装(老版本)
https://www.elastic.co/downloads/elasticsearchElasticSearch是一个高可扩展的开源的全文搜索分析引擎.它允许你快速的存储.搜索和分析大量数据.E ...