MySql服务器CPU、内存过高排查

通过sar命令查看MySql所在服务器CPU、内存资源使用率,都是99%以上。

 

一、查询连正在运行的线程信息

show processlist;   

查询结果
IdUserHostdbCommandTimeStateInfo
31test192.168.0.4:64312test_dbQuery0startingshow processlist
32test192.168.0.4:64313\NSleep11710 \N
241test192.168.0.5:47564test_dbQuery6782Sending dataSELECT
 cname,
 pname
423test192.168.0.5:51268test_dbSleep1029 \N
424test192.168.0.5:51270test_dbSleep632 \N
425test192.168.0.5:51272test_dbSleep1322 \N
427test192.168.0.5:51332test_dbSleep962 \N
428test192.168.0.5:51334test_dbSleep1546 \N

 

 

 

 

 

 

 

 

 

 

 

说明
IdUserHostdbCommandTimeStateInfo
 

 

用户名

 

源IP+端口数据库名称

当前连接的执行的命令:

休眠( sleep ),

查询( query ),

连接( connect )

状态持续的时间

单位是秒

当前连接的 sql 语句的状态该连接执行的SQL语句

 

 

 

 

 

二、查询status

show status;

show status like '%某一变量%';

 

三、排查

排查一、睡眠连接过多

睡眠连接过多,严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃。

排查步骤 :

1、查看连接超时时间

show global variables like 'wait_timeout'; 

2、设置连接超时时间

set global wait_timeout=20;

*wait_timeout过大会导致MySQL里大量的SLEEP进程无法及时释放,拖累系统性能;但设置过小,又可能会遇到“MySQL has gone away”之类的问题。

排查二、常超时间连接

 停止某个连接 kill  thread_id

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页