MySql服务器CPU、内存过高排查
通过sar命令查看MySql所在服务器CPU、内存资源使用率,都是99%以上。
一、查询连正在运行的线程信息
show processlist;
| Id | User | Host | db | Command | Time | State | Info |
| 31 | test | 192.168.0.4:64312 | test_db | Query | 0 | starting | show processlist |
| 32 | test | 192.168.0.4:64313 | \N | Sleep | 11710 | \N | |
| 241 | test | 192.168.0.5:47564 | test_db | Query | 6782 | Sending data | SELECT cname, pname |
| 423 | test | 192.168.0.5:51268 | test_db | Sleep | 1029 | \N | |
| 424 | test | 192.168.0.5:51270 | test_db | Sleep | 632 | \N | |
| 425 | test | 192.168.0.5:51272 | test_db | Sleep | 1322 | \N | |
| 427 | test | 192.168.0.5:51332 | test_db | Sleep | 962 | \N | |
| 428 | test | 192.168.0.5:51334 | test_db | Sleep | 1546 | \N |
| Id | User | Host | db | Command | Time | State | Info |
|
用户名
| 源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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
