RDS数据库cpu过高分析
百因必有果,你的报应就是我!
早上醒来发现钉钉群20+报警,异常奇怪,具体看看吧,是cpu过高,相信很多小伙伴也遇到过自己数据
库cpu大于80甚至100的时候,究竟是为什么呢?来自一java dev的笔记
Why
Case 1—> 慢sql
大多数的cpu过高都是由慢sql导致的,尤其是涉及到计算函数之类的,例如全表扫描或者说数据量过大,
内存排序 && 磁盘排序 以及 锁竞争等待…
那我们看到的又是什么呢?
以下截图来自百度~
此时CPU上升
QPS趋于稳定甚至有下降趋势
这类问题归功于慢sql导致的,可采取kill+id的方法先杀掉
我们通过 show processlist 可以看到当前正在执行的sql状态为
Sending data,Copying to tmp table,Copying to tmp table on disk,Sorting result,Using filesort,Locked;
Noted: 上述命令(show processlist)只能看到当前执行的sql对应进程,大半夜的又该怎么办呢?RDS
还是非常友好的,左侧菜单栏可以配置慢sql报警,对应的慢sql,连接的user等信息可以尽收眼底,回头
一一干掉,对了你也可以开通阿里云的sql审计功能,所有sql都会记录,但是!收费哈哈!
Case 2 —> QPS
观察CPU曲线利用率达到100
恰巧QPS对应的曲线利用率也是100
观察慢sql曲线,发现并不存在
总结:如遇以上情况,可以归功于QPS过高导致的,如有开通审计功能,可以查看最近一个月的QPS记录,找到对应的机器,对sql调用量进行top,如未开通,只好考虑对慢sql监控,进行报警,最终定位接口进行处理。
How
Case 1—> 慢sql
如果您的线上环境sql出现以上sql状态,说明sql性能有问题
Sending data: 正在执行sql查询,数据量过大或者说全表扫描了,没有建立索引,或者说索引建立
的不合适,索引失效等情况导致的sql查询时间过长。可以先看下该sql 执行计划 便后处理
Copying to tmp table on disk 像这种的状态一般都是sql查询的临时结果集过大,超过了数据库约
束的临时数据内存大小,需要将这个临时结果集拷贝到磁盘,无非就是sql查询范围过大或者sql查询时间
过长。
Sorting result,Using filesort: 对sql结果进行排序会产生高额的cpu消耗,多数情况下还是会借助
建立合适的索引消除排序或者减小排序结果集。
总而言之,言而总之,奇妙的事情诞生了,都是由于性能不高(慢sql)导致,处理线上慢sql,写好sql
是关键,sql优化老生常聊,大家也都知道,后续会为大家分享索引失效的篇章!
Case 2 —> QPS
A:可以考虑做缓存
B:多为一,将多个请求或者操作合成一个,谨慎!要考虑这一批数据量有多大,避免产生慢sql
C:做分库或者说读写分离,减轻单一服务器压力
D:花钱呗,升级服务器,没有啥是钱解决不了的
RDS数据库cpu过高分析相关推荐
- [转]定位占用oracle数据库cpu过高的sql
今天在吃饭的时候我的朋友的数据库出现了问题,cpu占用率为97%,当我看到这个问题的时候我就想到了或许是sql导致的此问题,由于忍不住吃饭,暂时没有帮他看这个问题,这是我饭后自己模拟的故障,进行的分析 ...
- 数据库CPU内存高以及全表扫描的原因
哪些情况数据库全表扫描 1. 使用null做为判断条件 2. 左模糊查询Like %XXX% 3. 使用or做为连接条件 4. 使用in时(not in) 5.使用not in时 6.使用!=或< ...
- 【linux性能优化】内核线程CPU利用率高分析
在排查网络问题时经常碰到的一个问题,就是内核线程的CPU使用率很高 比如,在高并发的场景中内核线程ksoftirqd的CPU使用率通常就会比较高,根据CPU和网络模块知识可以得知,这是网络收发的软中断 ...
- 记录一次cpu 过高分析过程
jstack命令执行报错:Unable to open socket file: target process not responding or HotSpot VM not loaded 1:cd ...
- 通过TOP命令查找达梦数据库CPU使用率高的会话
1.查看数据库进程id Ps –ef|grep dmser 数据库进程ID是1613/2.通过top命令查看CPU使用率高的pid: top -Hp 1613 这里CPU使用率高的PID是1674 3 ...
- 项目CPU异常高分析
今天验收一个项目的时候发现这程序挂在大厅不看视频都能煎鸡蛋,用电比充点还快,所以就决定查下这软件到底是干了点什么 1.首先先看下到底用了多少cpu 果然很离谱,我什么都不干,就已经这么高,一般的游戏都 ...
- oracle定位数据库读写高,oracle数据库CPU过高问题定位、分析(三)
一.环境准备 1.查看当前快照情况 SQL> select max(snap_id) from dba_hist_snapshot s; 28 2.手工生成一份快照 exec dbms_work ...
- 压测导致mysql数据库CPU很高_排查压测问题引发的系统性能调优过程
前言:今天测试部门的小梦找到我,委屈巴巴的说我写的接口有问题,因为她对这个接口进行压力测试时,发现系统的吞吐量一直上不去,并且 应用服务器 (部署接口项目的服务器) 的CPU.内存等资源的使用率也一直 ...
- 记一次 .NET医院公众号程序 线程CPU双高分析
一:背景 1. 讲故事 上周四有位朋友加wx咨询他的程序出现 CPU + 线程 双高的情况,希望我能帮忙排查下,如下图: 从截图看只是线程爆高,没看到 cpu 爆高哈????????????,有意思的 ...
最新文章
- 高效查看MySQL帮助文档的方法
- ffmpeg H264 编解码配置
- SAP_如何获得关于SAP配置表的系统设置的配置TCODE
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- SpringMVC(2)—SpringMVC整合Spring的HelloWorld
- 模型压缩与加速:Octave Convolution
- oracle java vm,我可以使用Oracle Java 7 HotSpot VM安装DCEVM吗?
- UEFI shell控制台向.efi文件传入参数--通过protocol实现
- jmeter常见面试题
- 2021-05-24
- Google街景下载
- 17110102_Windows系统下WebLogicServer12cR2安装详解
- Android图片加载框架最全解析(一),Glide的基本用法
- Mac OS X 内核Rootkit开发指南
- 购物中心最好的无线AP是什么?
- 贪吃蛇c加加代码_C语言编写简单贪吃蛇游戏源代码
- 英语单词词性顺口溜_初小英语语法速记口诀大全——词类
- 四阶幻方c语言编程,13年 第四届 蓝桥杯C语言C组 第4题 幻方填空
- maven complie报错汇总
- 为什么响应式(自适应)网站是一个坑
热门文章
- 什么运动耳机好用,六款运动耳机值得推荐
- 2018千元内的UGP VR一体机开箱评测:ugp vr一体机怎么样真的好吗?
- 利用计算机开方洋葱数学,他借助“洋葱数学”实现学讲模式
- kindle 4.1.1越狱换中文字体
- 《深入理解计算机系统》——低谷中的重新振作
- 朋友间相处的七项法则
- SIP: From ,Contact, Via 和 Record-Route/Route head字段详解
- 面向 Java 开发人员的区块链链代码
- 【Kafka】Kafka消费者相关策略
- 这份关于高三的秘籍,一定要知道!