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语句的更多相关文章

  1. JVM调优之Java进程消耗CPU过高

    JVM调优之Java进程消耗CPU过高 查找问题思路 1.查看cpu使用率,发现有线程cpu占用率很高  tops 咱们拿18092线程举例示范 2.查询pid对应的进程 ps -ef|grep 18 ...

  2. mysql调优学习笔记

    性能监控 使用show profile查询剖析工具,可以指定具体的type 此工具默认是禁用的,可以通过服务器变量在绘画级别动态的修改 set profiling=1; 当设置完成之后,在服务器上执行 ...

  3. Linux:快速找到占用CPU过高的Thread

    1.通过top命令找到高耗CPU的进程,记下PID 2.使用命令ps -mp PID -o THREAD,tid,time找到高耗CPU的那些线程 3.jstack PID 4.对每个高耗CPU的线程 ...

  4. MySQL 调优基础(一) CPU与进程

    一般而言,MySQL 的调优可以分为两个层面,一个是在MySQL层面上进行的调优,比如SQL改写,索引的添加,MySQL各种参数的配置:另一个层面是从操作系统的层面和硬件的层面来进行调优.操作系统的层 ...

  5. MySQL 调优/优化的 100 个建议

    MySQL 调优/优化的 100 个建议   MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定 ...

  6. MySQL调优系列基础篇

    前言 有一段时间没有写博客了,整天都在忙,上班,录制课程,恰巧最近一段时间比较清闲,打算弄弄MYSQL数据库. 关于MySQL数据库,这里就不做过多的介绍,开源.免费等特性深受各个互联网行业喜爱,尤其 ...

  7. mysql调优 基础

    MySQL调优可以从几个方面来做: 1. 架构层:做从库,实现读写分离: 2.系统层次:增加内存:给磁盘做raid0或者raid5以增加磁盘的读写速度:可以重新挂载磁盘,并加上noatime参数,这样 ...

  8. Mysql占用CPU过高如何优化,如何解决

    2017-02-28 15:13 331人阅读 评论(0) 收藏 举报   MySQL占用CPU过高如何优化 一次生产DB服务器的 超负荷运行问题解决: 1.查看生产DB服务器top列表, 执行 to ...

  9. 数据库MySQL调优实战经验总结<转>

    数据库MySQL调优实战经验总结 MySQL 数据库的使用是非常的广泛,稳定性和安全性也非常好,经历了无数大小公司的验证.仅能够安装使用是远远不够的,MySQL 在使用中需要进行不断的调整参数或优化设 ...

  10. Mysql占用CPU过高如何优化?(转)

    原文:http://bbs.landingbj.com/t-0-241441-1.html MySQL处在高负载环境下,磁盘IO读写过多,肯定会占用很多资源,必然CP会U占用过高. 占用CPU过高,可 ...

随机推荐

  1. Pikachu漏洞靶场 XSS(跨站脚本攻击)

    XSS 关于xss的我也是一知半解,所以只放出payload来. 反射型xss(get) 修改maxlength属性之后提交如下内容: <script>alert(/xss/);</ ...

  2. win11 右击还原 win10的

    以管理员身份 打开 powershell, 然后输入如下代码 .\reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a ...

  3. UE5: UpdateOverlap - 从源码深入探究UE的重叠触发

    前言 出于工作需要和个人好奇,本文对UE重叠事件更新的主要函数UpdateOverlaps从源码的角度进行了详细的分析,通过阅读源码,深入理解重叠事件是如何被触发和更新的. 解决问题 阅读本文,你将得 ...

  4. IPv6通过公网共享文件(Windows)

    前言 之前讲了如何使用IPv6进行内网穿透,这种方案实现的穿透是免费且不限速的.那么实现穿透后,我们就可以将原本Windows自带的共享功能的范围从局域网扩大到整个公网,从而实现随时随地都能访问到共享 ...

  5. gitee图床不能用了,心态崩了

    起因 大概上周五晚上吧,想着可以正常下班了.也没啥事,正好可以逛逛自己的小破站,看看有没有小伙伴留言什么的. 然后发现小破站图片显示不出来了... 一开始也没在意,想着可能是Gitee又挂了,可能一会 ...

  6. 云小课|MRS基础操作之集群健康检查

    本文分享自华为云社区<云小课|MRS基础操作之集群健康检查>,作者:阅识风云. 阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视 ...

  7. 干货分享丨轻松玩转 Huawei LiteOS 传感框架

    摘要:LiteOS传感框架将物联网终端设备上不同类型的传感器统一管理,通过抽象不同类型传感器接口,屏蔽其硬件细节,做到"硬件"无关性,非常方便于物联网设备的开发.维护和功能扩展. ...

  8. ROMA Connect: 5大联接能力+4大集成能力,推进企业数字化转型

    摘要:ROMA Connect是一个全栈式的应用与数据集成平台,源自华为数字化转型集成实践,聚焦应用和数据连接,适配多种企业常见的使用场景. 本文分享自华为云社区<数据融合集成平台ROMA Co ...

  9. Sechunter移动应用隐私合规检测详解

    摘要:本文简要介绍Sechunter移动应用隐私合规检测的方法步骤,以及目标检测技术在其中的应用. 本文分享自华为云社区<移动应用隐私合规检测简介及目标检测技术的应用>,作者:wolfre ...

  10. 在线一键生成安卓证书keystore 文件

    在线一键生成安卓证书 keystore 文件 一般的打包工具都会有默认的安卓证书提供,但如果你需要上架需要用自己申请安卓证书 keystore 文件打包 apk 现有方便方便的工具,直接在网页就可以申 ...