详细介绍Mysql占用过高CPU时的优化手段

下面小编就为大家带来一篇mysql占用过高cpu时的优化手段(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Mysql占用CPU过高的时候,该从哪些方面下手进行优化?

占用CPU过高,可以做如下考虑:

1)一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL,比如适当建立某字段的索引;

2)打开慢查询日志,将那些执行时间过长且占用资源过多的SQL拿来进行explain分析,导致CPU过高,多数是GroupBy、OrderBy排序问题所导致,然后慢慢进行优化改进。比如优化insert语句、优化group by语句、优化order by语句、优化join语句等等;

3)考虑定时优化文件及索引;

4)定期分析表,使用optimize table;

5)优化数据库对象;

6)考虑是否是锁问题;

7)调整一些MySQL Server参数,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;

8)如果数据量过大,可以考虑使用MySQL集群或者搭建高可用环境。

9)可能由于内存latch(泄露)导致数据库CPU高

10)在多用户高并发的情况下,任何系统都会hold不住的,所以,使用缓存是必须的,使用memcached或者redis缓存都可以;

11)看看tmp_table_size大小是否偏小,如果允许,适当的增大一点;

12)如果max_heap_table_size配置的过小,增大一点;

13)mysql的sql语句睡眠连接超时时间设置问题(wait_timeout)

14)使用show processlist查看mysql连接数,看看是否超过了mysql设置的连接数

下面分享一例遇到过的案例:

网站在高峰时段访问,点击页面有点卡。登陆服务器,发现机器负载有点高,并且mysql占用了很高的CPU资源,如下图:

详细介绍Mysql占用过高CPU时的优化手段

MySQL负载居高不下,如果打开了慢查询日志功能,最好的办法就是针对慢查询日志里执行慢的sql语句进行优化,如果sql语句用了大量的group by等语句,union联合查询等肯定会将mysql的占用率提高。所以就需要优化sql语句

除了优化sql语句外,也可以做一些配置上的优化。在mysql中运行show proceslist;出现下面回显结果:

1.查询有大量的Copying to tmp table on disk状态

小艺 小艺

华为公司推出的AI智能助手

小艺 549 查看详情 小艺

明显是由于临时表过大导致mysql将临时表写入硬盘影响了整体性能。

Mysql中tmp_table_size的默认值仅为16MB,在当前的情况下显然是不够用的。

mysql> show variables like "%tmp%";+-------------------+----------+| Variable_name | Value |+-------------------+----------+| max_tmp_tables | 32 || slave_load_tmpdir | /tmp || tmp_table_size | 16777216 || tmpdir | /tmp |+-------------------+----------+4 rows in set (0.00 sec)

解决办法:调整临时表大小

1)进mysql终端命令修改,加上global,下次进mysql就会生效

mysql> set global tmp_table_size=33554432;Query OK, 0 rows affected (0.00 sec)

再次登陆mysql

mysql> show variables like "%tmp%";+-------------------+----------+| Variable_name | Value |+-------------------+----------+| max_tmp_tables | 32 || slave_load_tmpdir | /tmp || tmp_table_size | 33554432 || tmpdir | /tmp |+-------------------+----------+4 rows in set (0.01 sec)

2)my.cnf配置文件修改

[root@www ~]# vim my.cnf.....tmp_table_size = 32M

重启mysql

[root@www ~]# /etc/init.d/mysqld restart

2.show processlist;命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句。比如下面结果:

Id User Host db Command Time State Info 207 root 192.168.1.25:51718 mytest Sleep 5 NULL

先简单说一下各列的含义和用途,第一列,id,不用说了吧,一个标识,你要kill一个语句的时候很有用。user列,显示单前用户,如果不是root,这个命令就只显示你权限范围内的sql语句。host列,显示这个语句是从哪个ip的哪个端口上发出的。呵呵,可以用来追踪出问题语句的用户。db列,显示这个进程目前连接的是哪个数据库 。command列,显示当前连接的执行的命令,一般就是休眠(sleep),查询(query),连接(connect)。time列,此这个状态持续的时间,单位是秒。state列,显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态的描述,请注意,state只是语句执行中的某一个状态,一个sql语句,已查询为例,可能需要经过copying to tmp table,Sorting result,Sending data等状态才可以完成,info列,显示这个sql语句,因为长度有限,所以长的sql语句就显示不全,但是一个判断问题语句的重要依据。

常见问题:

一般是睡眠连接过多,严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃。

解决办法 :

在mysql的配置my.cnf文件中,有一项wait_timeout参数设置.即可设置睡眠连接超时秒数,如果某个连接超时,会被mysql自然终止。
wait_timeout过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可能会遭遇到“MySQL has gone away”之类的问题。
通常来说,把wait_timeout设置为10小时是个不错的选择,但某些情况下可能也会出问题,比如说有一个CRON脚本,其中两次SQL查询的间隔时间大于10秒的话,那么这个设置就有问题了(当然,这也不是不能解决的问题,你可以在程序里时不时mysql_ping一下,以便服务器知道你还活着,重新计算wait_timeout时间):

MySQL服务器默认的“wait_timeout”是28800秒即8小时,意味着如果一个连接的空闲时间超过8个小时,MySQL将自动断开该连接。

然而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致下面的报错:

The last packet successfully received from the server was 596,688 milliseconds ago.mysql> show variables like 'wait_timeout';+---------------+-------+| Variable_name | Value |+---------------+-------+| wait_timeout | 28800 |+---------------+-------+1 row in set (0.00 sec)

28800seconds,也就是8小时。

如果在wait_timeout秒期间内,数据库连接(java.sql.Connection)一直处于等待状态,mysql就将该连接关闭。这时,你的Java应用的连接池仍然合法地持有该连接的引用。当用该连接来进行数据库操作时,就碰到上述错误。
可以将mysql全局变量wait_timeout的缺省值改大。

查看mysql手册,发现对wait_timeout的最大值分别是24天/365天(windows/linux)。

比如将其改成30天

mysql> set global wait_timeout=124800;Query OK, 0 rows affected (0.00 sec)

以上就是详细介绍Mysql占用过高CPU时的优化手段的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/797475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月26日 16:37:48
下一篇 2025年11月26日 16:38:21

相关推荐

  • Ruvi AI(RVU)利用区块链和人工智能破坏营销,娱乐和金融

    长期以来,tron一直是区块链项目如何通过坚守初心并实现持续增长来取得非凡成就的典范。 在加密货币这片广阔且不断演化的领域中,成功案例往往成为新项目探索创新与成长路径的灯塔。Tron作为一个去中心化的娱乐和内容分享平台,长期以来以其专注的目标与持续的价值输出,成为了区块链行业中的佼佼者。 那么,像R…

    2025年12月8日
    000
  • USDC和其他Stablecoins在XRPL上启动

    xrp ledger(xrpl)现已正式引入一系列由菲亚特支持的新型稳定币,其中包括usdc、xsgd、eurøp、rlusd和usdb。 一组新的由法币支持的稳定币已正式登陆XRP Ledger(XRPL),为区块链生态带来更高的货币多样性和流动性。 此次新增的稳定币包括USDC、XSGD、Eur…

    2025年12月8日
    000
  • 马里奥卡丁车世界的新机制完全破坏了

    nintendo的switch 2平台本月初正式推出,而《mario kart world》便是首批随主机一同发售的游戏之一。 这款被寄予厚望的Mario Kart系列新作却在玩家群体中引发了巨大争议。许多用户反馈称游戏存在严重问题,甚至有人直言它“完全崩了”。 尽管本作引入了多种全新机制,旨在提升…

    2025年12月8日
    000
  • Litecoin(LTC)的价格为$ 1000这个周期?那是不现实的 – 这就是为什么

    加密货币市场中总是充满各种猜测,莱特币(ltc)也不例外。部分社区成员依然坚信ltc有潜力达到500美元的价位。 在过去几周内,莱特币价格尝试突破关键阻力区域,再次展现出一定的活跃迹象。该加密货币在四月份从长期支撑区反弹,并自此逐步攀升。 尽管如此,随着LTC不断遭遇阻力,Litecoin价格达到5…

    2025年12月8日
    000
  • BlockDag是2025年增长最快的加密货币吗?靠近,eth和agix被超越

    2025年,加密货币的发展速度达到了前所未有的高度。创新层出不穷,而在众多试图突围的altcoins中,blockdag正迅速赢得关注。 在2025年这个加密货币狂潮的时代,新项目不断涌现,但真正能脱颖而出的却寥寥无几。随着投资者对空洞承诺的警惕,一个项目正在证明:技术、社区和实用性依然能够点燃巨大…

    2025年12月8日
    000
  • 云矿业行业的一支开创性力量哈希蝇(Hashfly)巩固了其作为2025年最值得信赖的平台的地位

    hashfly如今已成为稳定与便捷的标杆。凭借对法规遵循、创新性ai技术的坚定投入,其可靠性愈发凸显。 自2013年成立以来,Hashfly作为云挖矿行业的先驱者,现已发展为2025年最受信赖的云挖矿平台。 以法律合规、前沿AI技术和高回报挖矿合约为核心承诺,Hashfly正不断重塑全球超百万用户的…

    2025年12月8日
    000
  • 主要加密货币在周四继续向下势头

    尽管传统金融和监管方面不断取得进展,但由于持续的通货膨胀问题,市场参与者依旧保持谨慎态度 周四,主流加密货币继续承压下行,受宏观经济不确定性影响,这种不确定性已经开始盖过近期出现的一些积极制度进展。 尽管在传统金融和监管领域取得了越来越多的进展,但面对持续的通胀压力、利率预期的变化以及整体风险情绪的…

    2025年12月8日
    000
  • Cardano是否失去了Ruvi AI的破坏性创新?

    多年来,cardano已成为区块链领域最具创新精神的项目之一。然而,其缓慢的发展节奏与市场趋于饱和的状态,使不少投资者感到失望。 Cardano长期以来以严谨的开发方式和长远愿景著称,这种策略曾让它在加密世界中赢得了技术扎实、态度审慎的声誉。但与此同时,也带来了应用推广缓慢的问题,令部分投资者逐渐失…

    2025年12月8日
    000
  • 由于比特币(BTC)和Dogecoin(Doge)在2025年继续引起投资者的关注

    借助人工智能(ai)和云计算技术,一种全新的、低门槛的加密货币挖矿方式——ai云挖矿正迅速崛起并广受欢迎。 输入:赞助职位* 随着比特币(BTC)和狗狗币(DOGE)在2025年持续吸引投资者目光,加密市场正迎来一波“被动收入”的新热潮。通过人工智能与云计算的结合,AI云挖矿这一新兴模式正逐渐成为大…

    2025年12月8日
    000
  • 为美国用户启动加密货币永久期货交易的共同点

    coinbase global inc.近日公布了即将为美国用户推出永久期货交易的计划。这一动作标志着该公司在本土市场进一步拓展衍生品业务,允许交易者在平台上参与永久期货合约的交易。 据官方消息,Coinbase Global Inc.将面向其美国用户群开放永久期货交易功能。 这将推动该公司在该国衍…

    2025年12月8日
    000
  • 连锁链接(链接)价格预测:突破可能将价格推向新高点

    经过数周的盘整和中等幅度的价格波动,最新分析指出,潜在的突破可能会推动链链接(link)走向新的价格高点。 在经历了几周的震荡整理与温和的价格走势后,最新的市场评估显示,LINK存在向上突破的可能性,或将带动代币价格迈向新高。 当前链链接价格: 截至2025年6月12日,LINK交易价格为14.57…

    2025年12月8日
    000
  • WorldCoin(WLD)价格预测稳定在$ 1.00时,突破手表作为技术指标对齐

    在经历大幅下跌以及一段时间的盘整后,该代币最近稳定在1.00美元附近。 WorldCoin(WLD)代币在剧烈下跌和一段震荡整理之后,近期价格维持在1.00美元附近。技术指标开始趋于一致,市场关注度逐步回升,投资者正密切关注可能的突破走势。 在三月份触及高点后,WorldCoin(WLD)代币一度暴…

    2025年12月8日
    000
  • 未固定(未固定)筹集960万美元的预售,因为湿骨和门槛面部压力

    加密市场仍在弹性和回调之间波动,模因币如shiba inu和dogecoin正试图收复失地。 随着Meme Coins Shiba Inu和Dogecoin尝试重拾失去的阵地,加密货币市场展现出韧性与回撤并存的局面。 Shib正在测试初步反弹迹象所处的支撑位,过去一周下跌了12%。价格维持在0.01…

    2025年12月8日
    000
  • DeepSeek AI模型预测Cardano的原始令牌ADA可能达到7美元

    在人工智能(ai)生态系统中,ai模型针对部分数字资产做出了引人注目的价格预测,并指出基本面的发展是推动价格上涨的关键驱动力。 加密市场参与者迎来了新的月份,开始重新关注比特币及一些主流山寨币,整体情绪偏向乐观。 在中国,名为DeepSeek的人工智能模型近期对几类替代性加密货币,其中包括Carda…

    2025年12月8日
    000
  • 观看这个市场周期的顶级山寨币:不要错过Cardano,Blockdag,Vechain&Chainlink!

    探索2025年观看的顶级山寨币,包括blockdag,cardano,vechain和chainlink。了解为什么blockdag的2.98亿美元预售表现要优于当今市场上大多数加密硬币。 探索2025年观看的顶级山寨币,包括BlockDag,Cardano,Vechain和Chainlink。了解…

    2025年12月8日
    000
  • 比特币水龙头艺术装置纪念加密货币的兴起

    在这种情况下,基金投资者转型为数学艺术家的纳尔逊·塞尔斯(nelson saiers)创作了一件别具意义的雕塑,用以致敬比特币的崛起。 自2010年核心BTC贡献者加文·安德雷森(Gavin Andresen)推出了著名的比特币水龙头以来,比特币已经走过漫长的旅程。那时,加密货币诞生仅一年多时间,其…

    2025年12月8日
    000
  • Fomo的潮汐浪潮正在击中模因硬币现场,而Little Pepe($ lilpepe)正在高高骑行

    dogecoin(doge)正面临9600万个代币解锁的问题,这使得交易者纷纷转向一种名为 $ lilpepe 的模因币,该币具备第二层区块链功能。 FOMO热潮正在席卷模因币市场,Little Pepe($ Lilpepe)迅速崛起,在预售开启仅一天内就筹集了20万美元。当Dogecoin遭遇大量…

    2025年12月8日
    000
  • 阻滞剂:2025年最佳趋势加密货币

    在预售阶段成功募集2.98亿美元,售出224亿枚bdag代币,该项目甚至在正式上线前便已积累强劲势头。 2025年6月正逐渐升温,加密交易者纷纷加码投入,这不仅仅是口头说说而已。Layer 1与DeFi领域的竞争愈发激烈,但只有少数项目展现出真正的增长动力、优质吸引力以及爆发潜力。 其中,Block…

    2025年12月8日
    000
  • 代币循环的重大增加继续与市场绩效保持权衡

    以下是你提供内容的伪原创版本,已保持原意不变,并保留图片位置: 该报告研究了五个加密项目:Taiko、Pyth、Morpho、Nyan 和 Spec,结果表明更高的流通量并未带来更强的需求增长。 根据代币主义者(前身为 Tokenunlocks)发布的 30 天供应分析显示,多个项目的代币循环供应量…

    2025年12月8日
    000
  • AI助理平台Angel Twin将于6月18日推出其公用事业令牌$ ANGL

    公用事业代币$ angl的母公司angl inc.宣布其代币生成活动定于2025年6月18日启动 英属维尔京群岛,2025年6月12日,链闻 公用事业代币$ ANGL的母公司Angl Inc.正式公布,其代币生成事件(TGE)将于2025年6月18日举行,并将在UNISWAP上提供初始流动性。作为核…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信