mysql经常占用cpu100%以上,该怎么解决

mysql经常占用cpu100%以上,该怎么解决,第1张

有多个原因可至CPU高占用,当访问数量非常高的时候,安装程序没有完成,自身的更新进行过程,都会发生。

可将网络断开,让数据库在无访问情况下,看占用高不高,

再就是大的访问量的情况,如果是此原因引起的,那只能优化访问的语句,降低访问次数,我也见过一些人,无限制地任意使用SQL语句,至数据库负荷重。

杀掉lock进程最快的方法是重启mysql,像你这种情况,1000多sql锁住了,最好是重启

如果不允许重启,我提供一个shell脚本,生成 kill id命令杀掉lock线程,如下:

------------------------------------

#!/bin/bash

mysql -u root -e "show processlist"|grep -i "Locked" >>locked.txt

for line in awk '{print $1}' locked.txt

do

echo "kill $line">>kill_lock.sql

done

----------------------------------

执行完脚本后,会生成kill_lock.sql文件,内容类似如下:

kill 1

kill 2

kill 3

-------------------这些对应的都是lock的sessionid,直接复制文件里的内容,然后在mysql里执行就ok 了

至于排查哪条sql引起的,这个有点难了,不过你可以尝试开启慢查日志和无索引日志来确认比较耗时的查询,避免再次出现堵塞


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

原文地址: http://outofmemory.cn/zaji/8603467.html

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

发表评论

登录后才能评论

评论列表(0条)

保存