mysql5.7编译耗服务器CPU

mysql5.7编译耗服务器CPU,第1张

升级mysql数据库到5.7版本后,发现MySQL对CPU和内存的消耗增加了不少,内存增加量还好一些,但CPU的飙升就麻烦一些了,这样会占用不少的资源。

其实可以使用MySQL内部的表定位问题SQL,通过这个SQL来定位问题,通过这个SQL的查询结果可以定位具体的SQL问题,然后再进行优化,而我的CPU偏大原因就是因为部分使用了like查询,优化这个部分mysql就正常了。

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

解决办法 :

mysql的配置my.ini文件中,有一项:

wait_timeout, 即可设置睡眠连接超时秒数,如果某个连接超时,会被mysql自然终止。

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

mysql>show global variables like 'wait_timeout'

+----------------------------+-------+

| Variable_name | Value |

+----------------------------+-------+

| wait_timeout | 120|

+----------------------------+-------+

mysql>set global wait_timeout=20

至此,mysql占用cpu下降了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8674226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存