百因必有果,你的报应就是我!

早上醒来发现钉钉群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过高分析相关推荐

  1. [转]定位占用oracle数据库cpu过高的sql

    今天在吃饭的时候我的朋友的数据库出现了问题,cpu占用率为97%,当我看到这个问题的时候我就想到了或许是sql导致的此问题,由于忍不住吃饭,暂时没有帮他看这个问题,这是我饭后自己模拟的故障,进行的分析 ...

  2. 数据库CPU内存高以及全表扫描的原因

    哪些情况数据库全表扫描 1. 使用null做为判断条件 2. 左模糊查询Like %XXX% 3. 使用or做为连接条件 4. 使用in时(not in) 5.使用not in时 6.使用!=或< ...

  3. 【linux性能优化】内核线程CPU利用率高分析

    在排查网络问题时经常碰到的一个问题,就是内核线程的CPU使用率很高 比如,在高并发的场景中内核线程ksoftirqd的CPU使用率通常就会比较高,根据CPU和网络模块知识可以得知,这是网络收发的软中断 ...

  4. 记录一次cpu 过高分析过程

    jstack命令执行报错:Unable to open socket file: target process not responding or HotSpot VM not loaded 1:cd ...

  5. 通过TOP命令查找达梦数据库CPU使用率高的会话

    1.查看数据库进程id Ps –ef|grep dmser 数据库进程ID是1613/2.通过top命令查看CPU使用率高的pid: top -Hp 1613 这里CPU使用率高的PID是1674 3 ...

  6. 项目CPU异常高分析

    今天验收一个项目的时候发现这程序挂在大厅不看视频都能煎鸡蛋,用电比充点还快,所以就决定查下这软件到底是干了点什么 1.首先先看下到底用了多少cpu 果然很离谱,我什么都不干,就已经这么高,一般的游戏都 ...

  7. oracle定位数据库读写高,oracle数据库CPU过高问题定位、分析(三)

    一.环境准备 1.查看当前快照情况 SQL> select max(snap_id) from dba_hist_snapshot s; 28 2.手工生成一份快照 exec dbms_work ...

  8. 压测导致mysql数据库CPU很高_排查压测问题引发的系统性能调优过程

    前言:今天测试部门的小梦找到我,委屈巴巴的说我写的接口有问题,因为她对这个接口进行压力测试时,发现系统的吞吐量一直上不去,并且 应用服务器 (部署接口项目的服务器) 的CPU.内存等资源的使用率也一直 ...

  9. 记一次 .NET医院公众号程序 线程CPU双高分析

    一:背景 1. 讲故事 上周四有位朋友加wx咨询他的程序出现 CPU + 线程 双高的情况,希望我能帮忙排查下,如下图: 从截图看只是线程爆高,没看到 cpu 爆高哈????????????,有意思的 ...

最新文章

  1. 高效查看MySQL帮助文档的方法
  2. ffmpeg H264 编解码配置
  3. SAP_如何获得关于SAP配置表的系统设置的配置TCODE
  4. JDK自带VM分析工具jps,jstat,jmap,jconsole
  5. SpringMVC(2)—SpringMVC整合Spring的HelloWorld
  6. 模型压缩与加速:Octave Convolution
  7. oracle java vm,我可以使用Oracle Java 7 HotSpot VM安装DCEVM吗?
  8. UEFI shell控制台向.efi文件传入参数--通过protocol实现
  9. jmeter常见面试题
  10. 2021-05-24
  11. Google街景下载
  12. 17110102_Windows系统下WebLogicServer12cR2安装详解
  13. Android图片加载框架最全解析(一),Glide的基本用法
  14. Mac OS X 内核Rootkit开发指南
  15. 购物中心最好的无线AP是什么?
  16. 贪吃蛇c加加代码_C语言编写简单贪吃蛇游戏源代码
  17. 英语单词词性顺口溜_初小英语语法速记口诀大全——词类
  18. 四阶幻方c语言编程,13年 第四届 蓝桥杯C语言C组 第4题 幻方填空
  19. maven complie报错汇总
  20. 为什么响应式(自适应)网站是一个坑

热门文章

  1. 什么运动耳机好用,六款运动耳机值得推荐
  2. 2018千元内的UGP VR一体机开箱评测:ugp vr一体机怎么样真的好吗?
  3. 利用计算机开方洋葱数学,他借助“洋葱数学”实现学讲模式
  4. kindle 4.1.1越狱换中文字体
  5. 《深入理解计算机系统》——低谷中的重新振作
  6. 朋友间相处的七项法则
  7. SIP: From ,Contact, Via 和 Record-Route/Route head字段详解
  8. 面向 Java 开发人员的区块链链代码
  9. 【Kafka】Kafka消费者相关策略
  10. 这份关于高三的秘籍,一定要知道!