当突然mysql的cpu飙升到800%的情况下,可以通过以下方式查找原因?

(1)先用操作命令top命令查看观察是不是mysqlid导致的,如果不是,找出占用高的进程,并处理。如果是,进行show processlist,看看里面跑的 session 情况,是不是有消耗资源的 sql 在运行。找出消耗高的 sql,看看执行计划是否准确, index 是否缺失,或者实在是数据量太大造成。

解决方案:首先要 kill 掉这些线程(同时观察 cpu 使用率是否下降),等进行相应的调整(比如加索引、改 sql、改内存参数),再重新跑这些 SQL。也有可能是每个 sql 消耗资源并不多,但是突然之间,有大量的 session 连进来导致 cpu 飙升,这种情况就需要业务分析为何连接数会激增,做出相应的调整,如限制连接数等

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐