首页 > 数据库 >MySQL中如何快速定位占用CPU过高的SQL

MySQL中如何快速定位占用CPU过高的SQL

时间:2024-05-28 09:02:55浏览次数:27  
标签:定位 SQL 命令 MySQL 快速 CPU

作为DBA工作中都会遇到过数据库服务器CPU飙升的场景,我们该如何快速定位问题?又该如何快速找到具体是哪个SQL引发的CPU异常呢?下面我们说两个方法。聊聊MySQL中如何快速定位占用CPU过高的SQL。

技术人人都可以磨炼,但处理问题的思路和角度各有不同,希望这篇文章可以抛砖引玉。

 

以一个例子为切入点

基础环境:

  • 主机类型:阿里云 
  • 操作系统:CentOS release 7.4
  • 存储:Alibaba Cloud ECS    
  • 内存:64 G
  • CPU型号:Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz ( 1 U * 8 core) 
  • CPU核数:16CORE
  • 数据库环境:MySQL5.7.27
  • 存储引擎:InnoDB

 

问题现象:

数据库服务器CPU飙升。

方案一、通过pidstat命令定位

首先我们先找到mysqld进程的PID,然后执行pidstat -t -p $PID,结果如下图:

 

进入mysql交互命令,通过以下命令查询具体SQL。
 select * from performance_schema.threads where thread_os_id = '1';
定位到了具体定位sql接下来就可以分析优化了。

方案二、通过TOP命令定位
  • 首先执行TOP命令,输入H,可以按照显示线程状态。
  • 输入P,可以按照cpu的使用时间份额进行排序,这时候我们就可以看下是否有超过70%-90%以上的线程了。



登录mysql,执行以下命令

select * from performance_schema.threads where THREAD_OS_ID=4461 \G


 

标签:定位,SQL,命令,MySQL,快速,CPU
From: https://www.cnblogs.com/gdjgs/p/18217034

相关文章

  • mysql存储地理信息的方法
    MySQL存储地理信息通常使用GEOMETRY数据类型或其子类型(如POINT,LINESTRING,POLYGON等)。为了支持这些数据类型,MySQL提供了SPATIAL索引,这允许我们执行高效的地理空间查询。1.创建支持地理信息的表首先,我们需要一个包含GEOMETRY或其子类型列的表。以下是一个示例,展示......
  • 数据库初始,SQL语句介绍,MySQL数据库安装,SQL语句基础,操作MySQL数据库
    Ⅰ数据库初识【一】存储数据的演变过程【1】文件基于内存保存在早期,随意地存放到一个文件中、数据格式也是千差万别的,完全取决于个人员工管理系统是基于列表或字典(内存)存储数据【2】文件操作用本地的文本文件存储数据有的人喜欢存储到本地的一个文件中有的人喜欢存......
  • 成为MySQL DBA后,再看ORACLE数据库(二、监听与连接)
    一、监听器的启动ORACLE启动完成后,可以通过sqlplus/assysdba连接数据库,但是这个只是本地连接,无法通过tcp/ip远程访问数据库,这时候就要启动ORAClE的监听器。启动监听器的命令是lsnrctlstart,启动成功后,可以观察到1521端口也随之监听,这时候就能通过ip加端口远程访问数据库了。在......
  • SQL 经典实例 (Anthony Molinaro)关键技术分享
    链接:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqsoSQL基础介绍:概述SQL的基本语法和功能,帮助读者对SQL有一个整体的认识。关系数据库概述:介绍关系数据库的概念、特点以及常见的关系数据库管理系统。SQL查询基础:详细讲解SELECT语句的基本用法,包括选择列、过滤行......
  • mysql 8.0.18的docker安装
    1.拉取镜像sudodockerpullmysql:8.0.182.运行dockersudodockerrun-p3306:3306--namemysql--restart=always--privileged=true\-v/home/cy/soft/mysql/conf/mysql/log:/var/log/mysql\-v/home/cy/soft/mysql/data:/var/lib/mysql\-v/home/cy/soft/mysql/conf/......
  • MySQL 数据库-JDBC
    1.事务事务(Transaction):要么都成功,要么都失败事务原则:ACID原则(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))原子性:要么都成功,要么都失败一致性:事务前后的数据完整性要保证一致(如,转账操作后,两个人的总额不变)持久性:事务一旦提交不可逆,被持久化到了......
  • 无法连接阿里云服务器本地mysql问题
    1.登录服务器,进入本地mysql数据库,修改root账号访问权限为:%,表示所有IP都可以连接usemysql;updateusersethost="%"whereuser="root";//刷新权限FLUSHPRIVILEGES; 2. 查看是否修改成功:selectuser,host,pluginfrommysql.user; 3.修改 bind-address......
  • ubuntu安装mysql
    ubuntu安装mysql更新软件包列表sudoaptupdate安装mysql服务器sudoaptinstallmsyql-server启动并检查mysql服务sudosystemctlstartmysqlsudosystemctlstatusmysql无密码登录mysqlsudomysql-uroot给root创建密码如果是mysql5.0版本,使用alteruser'root'......
  • Oracle数据库跟踪SQL
    教大家如何玩转跟踪(toownersession、othersession)Oracle数据库的跟踪和分析方法Oracle数据库跟踪SQL的几种方法Oradebug工具使用https://blog.csdn.net/qq_43670385/article/details/132908317一、跟踪自己的会话或者是别人的会话1、跟踪自己的会话很简单Alterses......
  • DB Link导致SCN Headroom以及2012年1月的CPU或PSU补丁问题研究
    转自:https://www.cnblogs.com/dc-chen/p/7245290.htmlhttps://www.laoxiong.net/scn-ora-19706-_external_scn_rejection_threshold_hours-parameter.htmlhttps://www.modb.pro/db/4664https://www.iteye.com/blog/tianmaotalk-2437997一、基础概念1、SCN(SystemChangeNumb......