本文作者:DurkBlue

如何解决linux服务器中的mysql占用cpu资源过高的问题推荐

如何解决linux服务器中的mysql占用cpu资源过高的问题摘要: 今天使用 MobaXterml 连接上一台物联网的Linux服务器的使用,发现该服务器的CPU使用率一直在100%左右。使用top 命令发现Mysql占用了大量的CPU...

今天使用 MobaXterml 连接上一台物联网的Linux服务器的使用,发现该服务器的CPU使用率一直在100%左右。


如何解决linux服务器中的mysql占用cpu资源过高的问题 第1张


使用top 命令发现Mysql占用了大量的CPU


如何解决linux服务器中的mysql占用cpu资源过高的问题 第2张


用数据库工具 Navicat premium 以 root 的身份连接数据库,执行查询语句:


show PROCESSLIST;


发现主要是这条查询语句导致Mysql占用CPU的资源:


如何解决linux服务器中的mysql占用cpu资源过高的问题 第3张


于是采取以下步骤进行优化:


1.使用字段`contect_id`, `come_from`建立组合索引;


2.暂停物联网服务,使用查询语句:TRUNCATE  Table c_clients ,重置了这张表。(这个命名不要随便执行,会删除所有数据,并重置表,ID会从1重新开始,我这张表只保存当前在线的客户端数据,所以无所谓)。


这使用重新查看CPU占用情况,发现已经下降到了60%左右的占用率。


如何解决linux服务器中的mysql占用cpu资源过高的问题 第4张


继续深入优化:


1.使用查询语句:show variables like 'slow_query%',查看Mysql是否开启了慢日志,以及慢日志的存储位置;


如何解决linux服务器中的mysql占用cpu资源过高的问题 第5张


2.得到慢日志存储位置后,在 中使用Linux命令: cat -n  /usr/local/mysql/data/slow_1.log | tail -n 100,查看慢日志的最后100行记录(由于日志太大,最好不要一次性全部打开,否有有可能占满CPU和内存导致服务器死机)


如何解决linux服务器中的mysql占用cpu资源过高的问题 第6张


利用Mysql慢日志分析,如果是select语句比较慢,那需要针对性的建立索引。如果是insert慢,可以适当的删除索引。如果是update慢,可以根据实际情况,删除或添加索引。


最后优化完,CPU回归了平静。


如何解决linux服务器中的mysql占用cpu资源过高的问题 第7张

此篇文章由DurkBlue博主亲自发布,转载请注明来处哟
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 03-21
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论取消回复

快捷回复:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog

评论列表 (暂无评论,374人围观)参与讨论

还没有评论,来说两句吧...