Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql服务器CPU利用率过高排查

mysql服务器CPU利用率过高排查过程

作者:运维开发那些事

文章介绍了通过监控平台发现MySQL服务器CPU利用率过高的问题,通过排查和分析,找到一条执行时间过长的SQL语句,并通过EXPLAIN分析和优化该SQL,最终解决了CPU利用率过高的问题

背景

监控平台告警mysql服务器CPU利用率过高。

当时第一反应是平时的CPU利用率一直都在50%以下,怎么会突然过高呢?怀疑是有某些sql语句导致的。

排查过程

1、通过ps命令查找mysql进程ID

ps aux |grep mysqld

假设找到的pid为1796

2、使用top查找高CPU利用率的线程ID

top -Hp 1796

记录高CPU利用率的线程ID,例如:12345

3、找到线程对应的sql语句

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = (SELECT THREAD_ID FROM performance_schema.threads a WHERE THREAD_OS_ID = 12345);

看到有一条长sql执行了2min还没结束。

结论:是这条sql导致的CPU利用率过高

4、sql优化

通过EXPLAIN去分析查询sql

总结

通过利用率过高的mysql线程id找到 对应的执行sql ,然后通过EXPLAIN去优化查询语句。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文