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. Python——Html(表格<table>, <tr>,<td>,<th>、表单<form>、自定义标签<div>和<span>)

    一.表格<table>, <tr>,<td>或<th> <table> 元素是 HTML 中用于创建表格的主要标记.表格是一种用于展示数据的 ...

  2. 一个简单的Python暴力破解网站登录密码脚本

    目录: 关键代码解释 完整代码 方法一 运行结果 方法二 运行结果 测试靶机为DVWA,适合DVWA暴力破解模块的Low和Medium等级 关键代码解释 url指定url地址 url = " ...

  3. Programming abstractions in C阅读笔记:p181-p183

    <Programming Abstractions In C>学习第61天,p181-p183总结. 一.技术总结 1.linear search algorithm 2.lexicogr ...

  4. 3、Container容器组件

    Container容器组件 代码 import 'package:flutter/material.dart'; void main() {   runApp(MaterialApp(     hom ...

  5. curl使用小记(二)——远程下载一张图片

    目录 1. 概述 2. 实例 3. 参考 1. 概述 在之前的文章<curl使用小记(一)>中论述了命令行工具curl的基本使用.除此之外,curl还提供了能够直接供程序调用的模块库接口l ...

  6. 全域Serverless+AI,华为云加速大模型应用开发

    日前,华为全联接大会2023在上海召开.华为云CTO张宇昕在大会上发布了基于Serverless技术的大模型应用开发框架,框架以面向AI领域全新升级的FunctionGraph 3.0为核心,将Baa ...

  7. LiteOS内核源码分析:位操作模块

    摘要:本文带领大家一起剖析了LiteOS位操作模块的源代码,代码非常简单,参考官方示例程序代码,实际编译运行一下,加深理解. 在进一步分析之前,本文我们先来熟悉下LiteOS提供的辅助功能模块–位操作 ...

  8. 云图说|初识华为云数据库GaussDB(for openGauss)

    摘要:本文带你了解华为云华为云数据库GaussDB(for openGauss),将AI 技术融入分布式数据库的全生命周期,实现自运维.自管理.自调优.故障自诊断和自愈. 本文分享自华为云社区< ...

  9. 探索SaaS产业发展新机遇|鲁班会贵安首秀圆满收官

    摘要:2021年12月28日-12月29日,华为云·核心伙伴开发者训练营(第八期)-SaaS应用构建实践专场在华为贵安数据中心召开. 当前,在数字化新兴技术和数字化转型的热潮的引领下,SaaS业务应用 ...

  10. 数据智能——DTCC2022!中国数据库技术大会即将开幕

    ​ 关注DTCC有几年了,还是在当中学到了很多的干货.今年我的大部分时间也都是投入在了数据治理的学习和数据治理工具的调研中.也非常渴望有这种机会去了解一下国内顶尖公司这方面的前沿技术与应用. DTCC ...