数据库CPU满载如何处理

2023-11-18

当数据库CPU满载时,我们首先要做的是让CPU降下来,优先保证系统的可用性。

什么情况会导致数据库CPU飙升呢?

  • QPS过高: 高并发,也就是数据库承载的流量过大。
  • 慢SQL: 少量或大量慢SQL占用CPU资源,拖垮了数据库。这类慢sql通常表现为:查询的数据量过大,全表扫描OR扫描行数多、锁抢占甚至死锁、复杂查询等 。
  • Tips:少量慢SQL,但扫描行数多,也会占用大量CPU资源。

如何快速有效降低数据库CPU呢?

  • QPS过高: 找到对应的接口或SQL,针对性的限流或降级。
  • 慢SQL: 找到慢SQL对应的会话,Kill 掉会话。
  • Tips:
    • 接口限流,可通过阿里云AHAS实现;
    • SQL限流,可通过阿里云PolarDB的一键诊断->会话管理->SQL限流实现。
    • 当 Kill 掉慢SQL会话后,往往还是会有新的慢SQL请求进来,若流量未降下来,数据库CPU负载将持续过载。此时,可以结合限流手段来控制慢SQL的量,达到将数据库CPU快速降低的目的。当数据库CPU负载正常后,可以开始优化慢SQL,如建立索引等。

什么情况下可能会出现慢SQL?

  • 网络速度慢、内存不足、I/O吞吐量小和磁盘空间被占满等硬件原因。
  • 在项目初期没有对SQL的性能做好考量。
  • 没有索引或者索引失效。
  • 系统数据过多。

如何查找慢SQL或负荷最高的SQL语句?

  • 连接数据库,命令行执行show processlist语句,查找负荷最高的SQL语句。
  • 登录阿里云,通过一键诊断 -> 会话管理 -> 实例会话 ,选择要结束的会话。

有何优化手段?

  • QPS过高
    • 1)机器升级(有钱任性)
    • 2)使用缓存(没有什么是加一层不能解决的)
    • 3)使用批量操作(将多个操作合并为一个操作)
    • 4)分库分表,读写分离(降低访问压力)
  • 慢SQL
    • 1)SQL扫描数据行数过多:查看执行计划,分析是否设置了合理的索引
    • 2)SQL中有大量聚合操作:简化SQL,将逻辑提炼到业务代码中;聚合操作异步化或预处理;
    • 3)SQL返回的数据过多:分页查询
    • 4)读写较多锁竞争激烈:分库分表或读写分离
    • 5)机器性能较低:配置升级
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库CPU满载如何处理 的相关文章

  • Pod控制器(一)ReplicaSet

    目录 1 关于Pod控制器 1 1Pod控制器概述 1 2 控制器与Pod对象 1 3 ReplicaSet控制器 1 3 1 ReplicaSet概述 1 3 2 创建ReplicaSet 1 3 3 ReplicaSet管控下的Pod对

随机推荐

  • ajax同步异步的具体事例,Ajax同步和异步(示例代码)

    Ajax在默认情况下是异步执行的 即其属性 async boolean 是否异步 同步和异步的区别 同步 Client 向 Server请求数据 直到该部分数据返回时 Client在请求返回值后的相应程序队列才会按顺序执行 在此期间 Cli
  • 微信小程序 车牌号输入组件

    概述 一个小组件 用于方便用户输入车牌号码 详细 概述 有时候我们开发过程中会遇到需要用户输入车牌号的情况 让客户通过自带键盘输入 体验不好且容易出错 例如车牌号是不能输入O和I的 因此需要有一个自定义的键盘 让客户输入正确的车牌号 详细
  • 基于MyApps低代码平台生成的CRM实现客户的高效管理

    随着市场的发展 客户开始变得越来越重要 因此很多公司开始追求客户数量用尽浑身解数 可盲目发展 一股脑的想要扩大客户数量 也导致企业无法对客户进行有效的管理 不可避免地出现以下问题 1 没有对新客户做好分析 也疏于老客户的管理 导致客户流失的
  • 基于Qt的OpenGL编程(3.x以上GLSL可编程管线版)---(十七)深度测试

    Vries的教程是我看过的最好的可编程管线OpenGL教程 没有之一 其原地址如下 https learnopengl cn github io 04 20Advanced 20OpenGL 01 20Depth 20testing 关于深
  • 双目标定(二)单目标定基本原理

    主体思路 先处理纯二维平面的畸变问题 此处略过 矫正图片后 再来求解相机内外参数 基本思路是求得每个标定板对应的单应矩阵 再联合优化所有标定板数据得到相机内参矩阵 再得到每个标定板对应的外参 1 标定板平面到像平面的单应矩阵H 则对于每个棋
  • 短视频制作难度大吗?怎么剪辑短视频?

    随着抖音 快手等视频分享软件的兴起 很多人已经开始尝试制作短视频分享 那么 对于视频制作新手来说 短视频的制作难度大吗 其实 只要选对了视频制作软件 视频制作将会变得相当简单 在众多视频剪辑软件中 会声会影因其丰富的视频制作功能 直观的操作
  • python识别图像中的文字

    我们想识别图像中对我们有用的评论 所以需要卡一个阈值来仅仅获得对我们有用的信息 import easyocr 创建reader对象 import json reader easyocr Reader en result list reade
  • git --amend用法

    git commit amend 这个命令是让我们可以对上一次提交有修改 可以修改文件也可以修改说明 不产生新的commit 在我们有一次提交 然后提交之后评审发现代码有问题 我们没有进行和入 需要重新修改 但是我们又不能产生新的commi
  • IDEA中自动生成类图方法

    1 打开设置 File Setting或windows下按Ctrl Alt S 2 找到 Tools Diagrams 如下图 3 在Java Class Diagrams 中选中需要生成类图的对象 4 选中需要生成类图的对象 然后按Ctr
  • 将形如 0xAABBCC拆分成形如 三个数0xAA,0xBB,0xCC 及逆过程

    将形如 0xAABBCC拆分成形如 三个数0xAA 0xBB 0xCC pre class java private static int Int2Arr int a span span int s new int 3 span span
  • Java Post接口调用

    1 通过Cookies properties管理cookies cookies key1 AspNetCore Session cookies key2 TS01d2d863 cookies key3 ssoinfo cookies key
  • Kalman Filtering – A Practical Implementation Guide (wi_拔剑-浆糊的传说_新浪博客

    Kalman Filtering A Practical Implementation Guide with code 一个开源的C C 库 http kalman sourceforge net index php 另外一个基于末班类的开
  • Animator之RootMotion

    Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系 Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移 这个就是通过 applyRootMotion 来达成
  • java计时器_Java 计时器

    1 Timer and TimerTask Timer是jdk中提供的一个定时器工具 使用的时候会在主线程之外起一个单独的线程执行指定的计划任务 可以指定执行一次或者反复执行多次 TimerTask是一个实现了Runnable接口的抽象类
  • 【Python 3.7】访客名单:编写一个 while 循环,提示用户输入其名字。用户输入其名字后, 在屏幕上打印一句问候语,并将一条访问记录添加到文件 guest_book.txt 中。

    Python 3 7 访客名单 编写一个 while 循环 提示用户输入其名字 用户输入其名字后 在屏幕上打印一句问候语 并将一条访问记录添加到文件 guest book txt 中 确保这个文件中的每条记录都独占一行 程序为 filena
  • Python实现GWO智能灰狼优化算法优化循环神经网络分类模型(LSTM分类算法)项目实战

    说明 这是一个机器学习实战项目 附带数据 代码 文档 视频讲解 如需数据 代码 文档 视频讲解可以直接到文章最后获取 1 项目背景 灰狼优化算法 GWO 由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化
  • HLS图像处理系列——肤色检测

    本博文采用Xilinx HLS 2014 4工具 实现一个肤色检测的模块 其中 本文重点是构建HLS图像处理函数 新建HLS工程的步骤 本博文不再详述 本工程新建之后 只添加了五个文件 如下图所示 其中 top cpp中的主函数最终会综合生
  • 全球公有云一哥AWS十年宕机故障大全

    任何一个公有云供应商 在发展的历史长河中 都遭遇了这样那样的宕机 故障 或因人为因素 或因雷电太凶 或因机房停电 或因光缆被挖 或因代码错输 这些问题的出现与解决 正好也是公有云服务不断优化与提升的过程 不过 作为全球公有云的一哥 从可以查
  • Windows10下安装MXNet-走过的那些坑

    一 一开始看到各种安装方法 简单的 用pip安装mxnet的python CPU版本和GPU版本 windows还是linux python2还是python3 安装命令都一样 用pip安装mxnet的python CPU版本 pip in
  • 数据库CPU满载如何处理

    当数据库CPU满载时 我们首先要做的是让CPU降下来 优先保证系统的可用性 什么情况会导致数据库CPU飙升呢 QPS过高 高并发 也就是数据库承载的流量过大 慢SQL 少量或大量慢SQL占用CPU资源 拖垮了数据库 这类慢sql通常表现为