Grafans面板监控mysql指标以及模拟mysql慢查询

上一个文章讲解了利用Grafana配合prometheus监控mysql系统资源:
要是不知道的小伙伴的可以点击这里进行查看:
利用Grafana配合prometheus监控mysql系统资源.
Grafans面板监控mysql指标以及模拟mysql慢查询
要是有写的不对欢迎支出修改:
MYSQL Uptime:Mysql链接时间(最近一次启动时间开始计算)
current QPS: 链接的QPS
InnoDB Buffer pool size: 支持事务处理的引擎
Buff Pool Size of Total RAM:没有数据就没有

Connection:
Mysql connections:
MAX cnnection 静态值
MAX user connection 动态值,有多少人链接mysql ,挂在mysql下
Mysql Client Thread Activity:有多少进程正在RUN

Table Locks:
Mysql Questions: 有多少次查询,系统内部会定时查询
Mysql Thread cache: 线程的

Temporary:
mysql Tenporary: 临时表,临时文件(做一些特别的操作,比如说导数据的时候)

Sorts:
Mysql sorts: 同上
Mysql slow Queries: 慢查询

Aborted:
mysql Abort connection:超时网络不好,程序问题等,失败链接
MYsql Table Locks:等待时间

Network:
MySQL NewWork Traffic: 粗线条 进出流量
Mysql NewWOrk Usage Hourly:按照小时来分隔

Memory:
内存的一些信息,配置内存

MYSQL监控的三大指标计算方式:
三大指标(Mysql) :
TPS:

Com_commit = SHOW GLOBAL STATUS LIKE 'Com_commit'; #查询开机到现在发生了多少事务
Com_rollback = SHOW GLOBAL STATUS LIKE 'Com_rollback'; #有多少次回滚的次数
Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; 启动多长时间
计算公式
TPS=(Com_commit + Com_rollback)/Uptime  
LInux下计算方式(也可以用户winods的计算期)
echo "scale=5;2/10114" | bc    
5:小数点后几位
2:多少次事务
10114:开机时间

QPS(主要指查询语句):

Questions = SHOW GLOBAL STATUS LIKE 'Questions';
Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';
QPS = Questions/Uptime

IOPS(磁盘I/OPS) :

命令: iostat -d , sar -p -d
%util: 一秒中有百分之几的时间用于 I/O 操作。
svctm : 平均每次设备 I/O 操作的服务时间(以毫秒为单位)
await : 单个IO 消耗时间 (毫秒), 不是 每次设备 I/O 操作的等待时间
包含 设备处理I/O的时间 和 I/O请求在kernel队列中等待的时间
小知识: 机械磁盘 转速分: 5400/7200/ 10k/15k
假设磁盘平均物理寻道时间为3ms,
7200 的磁盘算IOPS : IOPS = 1000 / (3 + 60000/7200/2) = 140

接下来讲解如何模拟MYSQL的慢查询:
1.创建一个自己模拟的数据库和表(不建议用现有的):

CREATE database security;
CREATE TABLE `users` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=gbk;

2.数据生成
海量随机数据生成的bash 脚本 tt50.sh
随机生成十万条数据

#!/bin/bash
for i in {1..100000}
do
password=$(cat /proc/sys/kernel/random/uuid)
echo user$RANDOM,$password
done

3.数据插入

./tt50.sh > tt50.csv
echo "LOAD DATA LOCAL INFILE 'tt50.csv' INTO TABLE users FIELDS TERMINATED BY
',' (username,password);" | mysql -D security

4.查看和修改当前慢查询系统参数

show variables like '%long_query_time%'; #查看当前慢查询时长

当前慢查询时长Grafans面板监控mysql指标以及模拟mysql慢查询
修改慢查询时长:

set global long_query_time=1; #如果命令没有生效的话重新进入一下查看既可

修改查看配置文件
show variables like ‘%slow%’; #查看当前配置文件
Grafans面板监控mysql指标以及模拟mysql慢查询

把OFF的全部打开,统计慢查询日志:
修改日志文件
set global slow_query_log=1;
set global  log_slow_admin_statements=1;
set global  log_slow_slave_statements =1;
set global    slow_launch_time=1;
/var/lib/mysql/VM-0-10-centos-slow.log  #存放目录
show processlist;#显示哪些线程正在运行
show variables like '%connect%'; #查看链接数

模拟慢查询:
select sleep(5);

完了过后查看日志:
tail -f 10 VM-0-10-centos-slow.log
Grafans面板监控mysql指标以及模拟mysql慢查询

如果在Grafana安装搭建了mysql的环境可以直接在上面查看
Grafans面板监控mysql指标以及模拟mysql慢查询
大家在学习中,有什么问题,可以扫描下方二维码进群沟通交流。
Grafans面板监控mysql指标以及模拟mysql慢查询

上一篇:Linux命令 -- uptime 查看系统运行负载


下一篇:kubernetes主控节点宕机重启,导致kubelet不可用