Note: There is a file embedded within this post, please visit this post to download the file. MySQL数据库CPU飙升紧急处理方法 运行平稳的数据库,如果遇到CPU狂飙,到80%左右,那一定是开发写的烂SQL导致的,DBA首先要保证的是,数据库别跑挂了,所以
Note: There is a file embedded within this post, please visit this post to download the file.
MySQL数据库CPU飙升紧急处理方法
运行平稳的数据库,如果遇到CPU狂飙,到80%左右,那一定是开发写的烂SQL导致的,DBA首先要保证的是,数据库别跑挂了,所以我们要把那些运行慢的SQL杀死并记录到文件里,以便后面的排查。这里用到一个工具pt-kill,它可以帮助你。
1
|
pt-kill? -<span style="color: #ff0000;">-</span>match-info <span style="color: #ff0000;">"^</span>(select|SELECT)<span style="color: #ff0000;">"</span> -<span style="color: #ff0000;">-</span>busy-time 3 -<span style="color: #ff0000;">-</span>victim all -<span style="color: #ff0000;">-</span>interval 1 -<span style="color: #ff0000;">-</span>kill -<span style="color: #ff0000;">-</span>print --daemonize > /root/kill.txt
|
解释:只把select耗时3秒以上的SQL全部杀死,并打印出来。
模拟测试
![wKiom1LfbuOBq_RIAAFxqM69md4249](http://blog.webwlan.cn/wordpress/wp-content/uploads/2014/01/wKiom1LfbuOBq_RIAAFxqM69md4249.jpg)
这样就给杀死了,然后查看LOG。
![wKiom1Lfbw6jnhQVAAFg61aU5s4306](http://blog.webwlan.cn/wordpress/wp-content/uploads/2014/01/wKiom1Lfbw6jnhQVAAFg61aU5s4306.jpg)
会把杀死的SQL记录下来,然后再跟开发慢慢排查,有问题的SQL一定不能让开发随意上线的!
原文地址:MySQL数据库CPU飙升紧急处理方法, 感谢原作者分享。
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn