mysql查看cpu使用高sql语句_MYSQL CPU 使用率高,怎么查,怎么破
MYSQL 的CPU 使用率高,干时间长的DB们都会遇到,其实其他的数据库也都是有类似的问题,CPU一升高。大部分DBA 的首要工作就是要看是不是有大事务,大查询,慢查询等等。实际上我们是不是有更好的快速定位的方法
下图我们可以看到系统CPU一直在 90%, 到底什么原因造成MYSQL的CPU 利用率一直高怎么分析。follow me.
我们通过pidstat 来查看当前MYSQL的线程中那个CPU的使用率比较高
可以通过上图看到0 和 1 号CPU 核心的使用率比较其他的核心要高,并且我们也看到TID ,线程的数字,然后我们拿到这些线程的ID 直接回到MYSQL 内部,我们看看到底这两个线程在做什么。
我们可以结合上面的查询
1 我们可以确定到底多核心CPU上到底那个核心的CPU的利用率比较高
2 通过查找到哪个核心的CPU的使用率多少,定位到MYSQL 中的有问题的连接。
另外也可以通过监控系统来查看CPU 消耗在哪里,例如可以使用PMM,查看CPU 的消耗点在哪里,如果是用户user的层面,那就可以确认是用户的某些线程消耗了CPU的资源。然后可以通过上面的手段来定位当前到底那些线程在大量的使用CPU
这里有一个插曲,曾经听到如果遇到这样的情况,添加CPU 暂时缓解CPU LOAD 100 percent 的情况,这里做了一个test.
将上面的有压力的MYSQL 的CPU 添加一倍从4 croe 变为 8核心,最终结果(至少在我这里),CPU的LOAD 基本上没有变化,在负载同样的情况。
另外同时可以用下面的脚本,看一下瞬时的 QPS TPS 看看是不是系统已经超负荷运行。
mysqladmin -uroot -p'password' --socket=/data/mysql/mysql.sock extended-status -i1|awk 'BEGIN{local_switch=0;print "QPS Commit Rollback TPS Threads_con Threads_run \n------------------------------------------------------- "}
$2 ~ /Queries$/ {q=$4-lq;lq=$4;}
$2 ~ /Com_commit$/ {c=$4-lc;lc=$4;}
$2 ~ /Com_rollback$/ {r=$4-lr;lr=$4;}
$2 ~ /Threads_connected$/ {tc=$4;}
$2 ~ /Threads_running$/ {tr=$4;
if(local_switch==0)
{local_switch=1; count=0}
else {
if(count>10)
{count=0;print "------------------------------------------------------- \nQPS Commit Rollback TPS Threads_con Threads_run \n------------------------------------------------------- ";}
else{
count+=1;
printf "%-6d %-8d %-7d %-8d %-10d %d \n", q,c,r,c+r,tc,tr;
}
}
}'
同时可以辅助查看当前的handler_read_rnd , handler_read_rnd_next 等参数,如果快速的增长,说明当前的查询有全表扫描或者无法有效利用索引的情况。
剩下的工作可能就要和相关的一些慢查询或者捕捉到的语句来进行相关的分析了。
mysql查看cpu使用高sql语句_MYSQL CPU 使用率高,怎么查,怎么破相关推荐
- 两种方式:mysql查看正在执行的sql语句
mysql查看正在执行的sql语句 2015年08月21日 17:32:59 阅读数:15398 有2个方法: 1.使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史 ...
- mysql查看正在执行的sql语句
有2个方法: 1.使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到.好处是不用设置,不会保存. -- use information_schema; ...
- mysql添加二级索引的sql语句_MySQL面试知识点追命连环问(二)事务、索引及SQL优化...
目录 上次我们讨论了MySQL的运行流程及原理,字段设计,存储引擎和查询缓存. 这次我们继续来追命连环问关于事务,索引,SQL优化等相关的内容.准备好了吗?事务 索引 SQL优化 常见问题 1. M ...
- mysql log 记录报错 sql语句_MySQL生产库中添加修改表字段引起主从崩溃的问题总结...
上周末和开发人员对线上库中的部分表的在线DDL和update,这过程中出现了一些意料之外的问题,现将过程.分析和解决方案在这里总结一下 一. 需求背景: 要在如下表中添加字段(modified_at) ...
- mysql创建用户表的sql语句_Mysql创建、删除用户和表的SQL语句
Mysql创建.删除用户和表的SQL语句 (2015-01-15 17:08:17) 标签: it 联动北方 数据库 分类: IT MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意 ...
- mysql存储过程是不是不能穿sql语句_mysql存储过程能不能直接执行拼接的sql语句...
展开全部 当然可以,就是在mysql存储过程中使用动态sql,就可以拼接sql,然62616964757a686964616fe58685e5aeb931333361323562后执行了. 给你复制一 ...
- mysql创建备份表的sql语句_mysql 备份语句
模板: mysqldump -h IP -u user -p 选项 dbname>d:\db.sql 选项:-f表示有错误时继续 -d 表示--no-create-db, -n表示--no-da ...
- mysql 怎么查询慢sql语句_Mysql中 查询慢的 Sql语句的记录查找
Mysql中 查询慢的 Sql语句的记录查找 慢查询日志 slow_query_log,是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,这样可以对比较慢的sql可以进行优化. ...
- shell实行mysql语句_【Mysql】shell运行mysql的sql语句_MySQL
bitsCN.com [Mysql]shell运行mysql的sql语句 shell本身是一种脚本语言,所以不能像java一样通过api去连接数据库.shell还是要借助mysql本身的一些运行脚本才 ...
- mysql导出不带注释的sql语句_MySQL mysqlbinlog解析出的SQL语句被注释是怎么回事
MySQL mysqlbinlog解析出的SQL语句被注释是怎么回事 一网友反馈使用mysqlbinlog解析出的二进制日志中的内容中,有些SQL语句有#注释的情况,这个是怎么回事呢?我们通过实验来了 ...
最新文章
- 2021全国高校计算机能力挑战赛(初赛)Java试题三
- ActiveMQ的多节点集群
- linux 新建用户_使用Xshell和Xftp连接管理Linux服务器
- onclick事件没有反应的五种可能情况
- 一. DotNet MVC4.0+EasyUI Web简单框架-前言
- 2022博客整理之感言
- 华为21级程序员月薪曝光:270k封神!众网友直呼长见识……
- 74 ----平面直角坐标变换、平移、旋转、伸缩
- moodle环境安装linux,Linux下安装Moodle
- FastReport 动态加载图片
- 湖南省计算机二级考试题库,湖南省计算机二级考试题库..doc
- 《战双帕弥什》的动作打击感是怎么做出来的
- linux的xshell怎么保存密码,Xshell保存账号密码方法
- 企业员工快速增长,无线网络如何承载需求?干货!
- MybatisPlus乐观锁配置
- python图书馆管理系统实验报告_基于python图书馆管理系统设计实例详解
- typecho本地上传头像_用ProGet搭建本地私有NuGet仓库
- 【React】二.JSX
- 数据分析-------动态报表制作
- dlut 人工智能基础上机————创造营2020数据爬取