MySQL调优学习-快速获取占用CPU较高的SQL语句
MySQL调优学习-快速获取占用CPU较高的SQL语句
背景
早上突然发现一个MySQL数据库的CPU使用率居高
因为是一个混布的环境上面还有一个redis
怕影响业务就上去像查看一下具体是何种原因导致的速度慢
因为实发突然,并没有mysql em 等工具
所以从网上学到了一个方法进行简单学习与验证.
https://blog.csdn.net/qq_28721869/article/details/115820752
学习过程
ssh 到高CPU的数据库服务器
top 输入 P 查看最高的是MySQL的进程.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1644407 mysql 20 0 26.3g 14.6g 39872 S 399.0 64.7 2693:35 mysqld
然后输入 PID为第一步查询出来的PID信息
top -Hp 1644407
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2066704 mysql 20 0 26.3g 14.6g 39872 R 20.3 64.6 7:21.32 connection
2066836 mysql 20 0 26.3g 14.6g 39872 R 20.3 64.6 7:41.53 connection
1884703 mysql 20 0 26.3g 14.6g 39872 R 20.0 64.6 20:22.51 connection
2029584 mysql 20 0 26.3g 14.6g 39872 R 20.0 64.6 7:21.81 connection
2039926 mysql 20 0 26.3g 14.6g 39872 R 20.0 64.6 7:19.38 connection
2044950 mysql 20 0 26.3g 14.6g 39872 R 20.0 64.6 7:21.09 connection
2045032 mysql 20 0 26.3g 14.6g 39872 R 20.0 64.6 7:41.30 connection
2066656 mysql 20 0 26.3g 14.6g 39872 R 20.0 64.6 7:38.89 connection
2066713 mysql 20 0 26.3g 14.6g 39872 R 20.0 64.6 7:40.71 connection
2066803 mysql 20 0 26.3g 14.6g 39872 R 20.0 64.6 7:21.77 connection
2078251 mysql 20 0 26.3g 14.6g 39872 R 20.0 64.6 7:30.40 connection
2078880 mysql 20 0 26.3g 14.6g 39872 R 20.0 64.6 7:19.57 connection
1883812 mysql 20 0 26.3g 14.6g 39872 R 19.7 64.6 13:26.13 connection
因为平均CPU使用率是 20% 所以充分怀疑进程已经至少存在了 30个小时左右
可以使用 sar -f /var/log/sa/sa01 的方式查看CPU的近期使用率.
根据pid 查看具体的 SQL语句
将pid 保存进 1.txt 然后使用如下方式进行处理.
for i in `cat 1.txt` ; do echo -n "$i ,"; done
执行SQL为:
SELECT
b.HOST,
b.db,
b.USER,
a.THREAD_OS_ID "os_id",
b.id "processlist_id",
b.command,
b.time,
b.state,
a.PROCESSLIST_INFO,
b.info "sql"
FROM
PERFORMANCE_SCHEMA.threads a,
information_schema.PROCESSLIST b
WHERE
b.id = a.processlist_id
AND a.THREAD_OS_ID in (2066704 ,2066836)
查询效果为

查看进程开始的时间
ps -T -eo pid,tid,lstart,etime,cmd |grep $threadid |grep -v grep
需要注意 ps 默认不显示 thread 信息. 只显示 prcess的信息
需要增加 -T 参数,并且选择 tid 才会将 threads的信息展示出来进行查询
比如我这边这个的显示信息为:
1644407 2066704 Wed Nov 1 09:09:00 2023 1-00:19:11
MySQL其他学习
在作者的其他blog上面看到了 myawr工具
计划近期有时间学习一下相关内容.
MySQL调优学习-快速获取占用CPU较高的SQL语句的更多相关文章
- JVM调优之Java进程消耗CPU过高
JVM调优之Java进程消耗CPU过高 查找问题思路 1.查看cpu使用率,发现有线程cpu占用率很高 tops 咱们拿18092线程举例示范 2.查询pid对应的进程 ps -ef|grep 18 ...
- mysql调优学习笔记
性能监控 使用show profile查询剖析工具,可以指定具体的type 此工具默认是禁用的,可以通过服务器变量在绘画级别动态的修改 set profiling=1; 当设置完成之后,在服务器上执行 ...
- Linux:快速找到占用CPU过高的Thread
1.通过top命令找到高耗CPU的进程,记下PID 2.使用命令ps -mp PID -o THREAD,tid,time找到高耗CPU的那些线程 3.jstack PID 4.对每个高耗CPU的线程 ...
- MySQL 调优基础(一) CPU与进程
一般而言,MySQL 的调优可以分为两个层面,一个是在MySQL层面上进行的调优,比如SQL改写,索引的添加,MySQL各种参数的配置:另一个层面是从操作系统的层面和硬件的层面来进行调优.操作系统的层 ...
- MySQL 调优/优化的 100 个建议
MySQL 调优/优化的 100 个建议 MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定 ...
- MySQL调优系列基础篇
前言 有一段时间没有写博客了,整天都在忙,上班,录制课程,恰巧最近一段时间比较清闲,打算弄弄MYSQL数据库. 关于MySQL数据库,这里就不做过多的介绍,开源.免费等特性深受各个互联网行业喜爱,尤其 ...
- mysql调优 基础
MySQL调优可以从几个方面来做: 1. 架构层:做从库,实现读写分离: 2.系统层次:增加内存:给磁盘做raid0或者raid5以增加磁盘的读写速度:可以重新挂载磁盘,并加上noatime参数,这样 ...
- Mysql占用CPU过高如何优化,如何解决
2017-02-28 15:13 331人阅读 评论(0) 收藏 举报 MySQL占用CPU过高如何优化 一次生产DB服务器的 超负荷运行问题解决: 1.查看生产DB服务器top列表, 执行 to ...
- 数据库MySQL调优实战经验总结<转>
数据库MySQL调优实战经验总结 MySQL 数据库的使用是非常的广泛,稳定性和安全性也非常好,经历了无数大小公司的验证.仅能够安装使用是远远不够的,MySQL 在使用中需要进行不断的调整参数或优化设 ...
- Mysql占用CPU过高如何优化?(转)
原文:http://bbs.landingbj.com/t-0-241441-1.html MySQL处在高负载环境下,磁盘IO读写过多,肯定会占用很多资源,必然CP会U占用过高. 占用CPU过高,可 ...
随机推荐
- Python——第二章:基础数据类型
下面是需要掌握的知识点: int, float, bool (5星)str (5星)list (5星)tuple (2星)set (1星)dict (5星)bytes ...
- UE5: UpdateOverlap - 从源码深入探究UE的重叠触发
前言 出于工作需要和个人好奇,本文对UE重叠事件更新的主要函数UpdateOverlaps从源码的角度进行了详细的分析,通过阅读源码,深入理解重叠事件是如何被触发和更新的. 解决问题 阅读本文,你将得 ...
- 如何实现gif格式图片倒放效果?
不知道大家看电影的时候有没有发现出现过这样的一个神奇场景: 一个子弹竟然从远处飞回到手枪中,整个场景呈现一种时空倒流的感觉? 正文 先来几个有趣的倒放动图娱乐一下~ 猫:我谢谢你们全家 萌娃快乐针 尊 ...
- GaussDB(DWS)查询过滤器原理与应用
摘要:GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔离反复被终止的查询,防止烂SQL再次执行. 本文分享自华为云社区<GaussDB(DWS)查询过滤器原理与应用> ...
- WSDM Cup 2020大赛金牌参赛方案全解析
近日,在美国休斯敦闭幕的第13届网络搜索与数据挖掘国际会议(WSDM 2020)上,华为云语音语义创新Lab带领来自华南理工大学.华中科技大学.江南大学.武汉大学的四位学生组成的联合团队"X ...
- 【一行代码秒上云】Serverless六步构建全栈网站
摘要:Serverless怎么玩?听一千道一万不如亲手来实践,跟着我们以华为云Serverless实践FunctionGraph来免费体验一下六步构建全栈网站吧 前言: Serverless怎么玩?听 ...
- 昇腾携手OpenMMLab,支持海量算法仓库的昇腾AI推理部署
摘要:近日,昇腾AI联合上海人工智能实验室,正式实现OpenMMLab算法仓库在昇腾的异构计算架构CANN上的推理部署,目前相关代码已推入MMDeploy 0.10.0版本,并在GitHub正式发布. ...
- 教你如何在Python中读,写和解析CSV文
摘要:在这篇文章中关于"在Python如何阅读CSV文件"中,我们将学习如何读,写和解析的CSV文件的Python. 您知道将表格数据存储到纯文本文件背后的机制是什么吗?答案是CS ...
- Nacos 1.2.1 集群搭建(二)MySQL、cluster 配置
三台虚机的IP地址被DHCP重分了一下1.MySQL 配置 先建一个 nacos_config 数据库 将SQL执行(方法很多,选自己喜欢的就行) 2.修改 application.propertie ...
- Spring Boot Admin 自定义健康检查
添加自定义类: /** * 监控接口的健康情况 * */ @Component public class ApiHealthIndicator implements HealthIndicator { ...