MySQL反应慢排查思路

数据库异常假死排查需要数据(当时问题的时间,前后时间在2个小时的数据就行)

1.MySQL相关配置

整体可以借助于pt-mysql-summary生成(percona-tools工具)

2.操作系统方面/var/log/message & 内核日志

硬件基本信息,可以借助于pt-summary信息(percona-tools工具)

系统的CPU信息

系统当时的磁盘IO信息

3.MySQL监控数据

MySQL连接数据信息

MySQL的DML(含insert)的每秒QPS数据

show engine innodb statusG 输出

show global variables;show global status;select sleep(5);show global status;输出

4.MySQL的error log

5.对应时间点的慢日志

当前状态

当前硬件情况 & 操作系统 & MySQL版本

pt-summary

pt-mysql-summary

CPU情况

CPU指标分为:

us -> User : 用户态进程CPU开销

sy -> System : 内核的CPU开销

id -> idle : 空闲的CPU

wa -> io_wait : 用于IO等待的CPU开销

hi/si -> 中断相关

st -> 用于vm切换类的CPU开销

IO情况

iostat -m -x 1 10

查看iops,iotop -oP,IO吞吐量

利用pt-ioprofile查看热点

内存情况

free -m

vmstat -S m 1 10

MySQL状态分析

MySQL关键配置

innodb_buffer_pool_size

innodb_thread_concurrency

sync_binlog

innodb_flush_log_at_trx_commit

long_query_time

show processlist;

show global status like "%thread%";

show engine innodb statusG

show processlist

几个状态

cleaning up : 进程执行完毕,清理战场

opening tables : 进程去打开表

sending data : 读取数据向客户端发送

statistics : 服务端收集统计类信息

这几个状态时有问题的

原文地址:https://www.cnblogs.com/allenhu320/p/11364880.html