开发者社区> 问答> 正文

MySQL数据库cpu飙升的话,要怎么处理呢?

MySQL数据库cpu飙升的话,要怎么处理呢?

展开
收起
Carice 2021-10-16 22:55:48 3459 0
2 条回答
写回答
取消 提交回答
  • 先用操作系统命令 top 命令观察是不是 mysqld 占用导致的,如果不是,找出占用高的进程,并进行相关处理

    2021-10-16 23:03:23
    赞同 1 展开评论 打赏
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好,

    排查过程:

    使用top 命令观察,确定是mysqld导致还是其他原因。
    如果是mysqld导致的,show processlist,查看session情况,确定是不是有消耗资源的sql在运行。
    找出消耗高的 sql,看看执行计划是否准确, 索引是否缺失,数据量是否太大。
    
    

    处理:

    kill 掉这些线程(同时观察 cpu 使用率是否下降),
    进行相应的调整(比如说加索引、改 sql、改内存参数)
    重新跑这些 SQL。
    
    

    其他情况: 也有可能是每个 sql 消耗资源并不多,但是突然之间,有大量的 session 连进来导致 cpu 飙升,这种情况就需要跟应用一起来分析为何连接数会激增,再做出相应的调整,比如说限制连接数等

    2021-10-16 23:01:20
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载

相关镜像