mysql数据库慢sql导致服务器cpu打满,临时解决

问题及解决
线上抛出部分功能页面加载不出来,查看k8s的POD,以及服务器,发现服务器CPU在该时间段飙升,没降下来,经排查是慢sql查询数据库时,将tidb所在服务器的cpu打满,此时首先做的是恢复业务。先连接上tidb,查出慢sql,kill掉,等待业务恢复。此时只是暂时了解决问题,根本上还是要从sql本身出发,将问题反馈给对应负责人,对应开发对代码进行优化处理慢sql,保证后续不会再出现

全库查询阻塞慢sql,并kill掉

select concat('kill ', id, ';') from information_schema.processlist where Command != 'Sleep' and Time > 10 order by Time desc;

按dbname查询单个库的慢sql,kill

show processlist
select concat('kill ', id, ';') from information_schema.processlist where Command != 'Sleep' and db = 'saas'

将查出来的SQL ID拷贝出来,用root用户在对应的库下执行

mysql> kill id;

mysql行锁

#找出所有处于锁等待状态的事务
mysql> SELECT * FROM information_schema.innodb_trx WHERE trx_state = 'LOCK WAIT';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值