【MySQL进阶之路】生产案例:每一个月左右MySQL就会出现性能抖动问题

news2024/12/25 13:27:25

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送!

在我后台回复 「资料」 可领取编程高频电子书
在我后台回复「面试」可领取硬核面试笔记

文章导读地址:点击查看文章导读!

感谢你的关注!

在这里插入图片描述

生产案例:每一个月左右MySQL就会出现性能抖动

今天说一个生产环境的案例,MySQL 的性能抖动问题

具体现象也就是每隔一个月左右的时间,MySQL 就会出现性能急剧下降的情况,通过 linux 命令对问题进行排查之后,发现了每隔 30 天有一次 RAID 充放电的日志,那么推测性能急剧下降就是由于 RAID 充放电所导致的

生产环境中将数据库部署在了 64G 高配服务器上,并使用了 6 块硬盘组成了 RAID10 磁盘阵列

那么接下来说一下为什么 RAID 需要充放电,以及 RAID 充放电为什么会导致 MySQL 性能急剧下降:

RAID 是独立冗余磁盘阵列(将 RAID 的技术介绍放在了后边),作用是提供管理机器中的多块磁盘以及磁盘之间的数据冗余的功能

而使用多块磁盘组成 RAID 阵列时,一般会有一个 RAID 卡,这个卡中是有一块缓存区域的,当把 RAID 的缓存模式设置为 write back 时,所有写入到磁盘阵列中的数据,会先写入到 RAID 卡中的缓存区域,大幅度提升磁盘写的性能(和操作系统中的 os cache 类似)

请添加图片描述

这块缓存区域就相当于是内存,那么就带来了一个问题:如果机器突然断电,在 RAID 卡里缓存区域中的数据就会丢失,因此 RAID 卡一般都会有自己独立的 锂电池 或者 电容,如果机器突然断电,RAID 卡是基于锂电池运行的,因此不会导致数据丢失的问题

那么锂电池是会出现性能损耗的,一般来讲每隔 30-90 天都会自动对锂电池进行充放电一次,来延迟锂电池的寿命以及校准电池容量

在锂电池充放电的过程中,RAID 的缓存模式会由 write back 变为 write through,也就是通过 RAID 写数据的话,会直接写入磁盘,而不是先写入 RAID 卡的缓存区域中,因此在充放电过程中,RAID 的写性能会急剧下降!

那么问题原因找到了,如何解决呢?

其实就是将充放电的时间给控制一下就可以了,也就是手动充放电,通过脚本在凌晨业务低峰期的时候进行充放电,并且设置在充放电的时候禁止 RAID 缓存模式由 write back 变为 write through

这样子可以避免在业务高峰期期间,RAID 中的锂电池自动充放电,导致 MySQL 性能急剧下降,影响正常业务请求!

目前顶尖的互联网大厂的数据库服务器的 RAID 就是通过这个方案来避免性能抖动问题!

这里补充一下 RAID 相关的内容,RAID 分为了不同的技术方案,常见的有:

  • RAID0:最简单的一种形式,没有提供冗余或错误修复能力,但是实现成本最低,只需要2块以上的硬盘即可提高整个磁盘的性能和吞吐量。

  • RAID1:又称磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,在不影响性能的情况下最大程度保证系统的可靠性和可修复性。

    常用的RAID组别—RAID5(随机写比较慢,因为需要计算奇偶校验位的数值,随机读和顺序读很快,RAID5比较适合读业务,最好使用在从(Slave)数据库服务器上)

  • RAID5:又称分布式奇偶校验磁盘阵列,通过分布式奇偶校验块把数据分散到多个磁盘上,这样如果任何一个盘数据失效,都可以从奇偶校验块中重建。但是如果两块磁盘失效,则整个卷的数据都无法恢复。

  • RAID10:又称分片的镜像,它是对磁盘先做RAID1之后,对两组RAID1的磁盘再做RAID0,所以对读写都有良好的性能,相对于RAID5重建起来更简单,也更快。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1444103.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux第45步_通过搭建“DNS服务器”学习图形化配置工具

学习的意义:通过搭建“DNS服务器”,来学习“图形化配置工具”。“DNS服务器”,我们用不到,但为后期移植linux系统服务,因为在移植系统时,需要用到这个“图形化配置工具”。 1、“menuconfig图形化配置工具…

贾玲的腹肌,你也可以拥有

​​​​​​​ 贾玲的腹肌,你也可以拥有 大年初一,有学员来给顾问老师拜年,聊起了现在春节档热门电影,贾玲导演的第二部作品《热辣滚烫》,也聊起了她瘦身100斤后的模样。 学员:贾玲瘦了 100 斤&#xff0…

c语言中的隐式类型转换

数据类型转化 我们在实际编程中,不管你是有意的还是无意的,有时候都会让两个不同类型的数据参与运算,编译器为了能够生成CPU可以正常 执行的指令,往往会对数据做类型转换,将两个不同类型的数据转换成同一种数据类型。…

C++重新入门-循环

目录 1.循环类型 while循环: for循环 基于范围的for循环(C11) do...while 循环 2.循环控制语句 3.无限循环 有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着…

寒假 day10

1、请使用递归实现n! #include<stdio.h> #include<string.h> #include<stdlib.h>int fun(int m) {if(m0)return 1;else{return m*fun(m-1);} } int main(int argc, const char *argv[]) {int m;printf("please enter m:");scanf("%d",…

视觉SLAM十四讲学习笔记(二)三维空间刚体

哔哩哔哩课程连接&#xff1a;视觉SLAM十四讲ch3_哔哩哔哩_bilibili​ 目录 一、旋转矩阵 1 点、向量、坐标系 2 坐标系间的欧氏变换 3 变换矩阵与齐次坐标 二、实践&#xff1a;Eigen&#xff08;1&#xff09; 运行报错记录与解决 三、旋转向量和欧拉角 1 旋转向量 …

OpenCV-35 查找轮廓

一、 什么是图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线&#xff0c;轮廓在形状分析和物体的检测识别中很有用。 用于图形分析物体的识别和检测 注意点&#xff1a; 为了检测的准确性&#xff0c;需要先对图像进行二值化或Canny操作。画轮廓时会修改输入的图像&a…

fast.ai 深度学习笔记(六)

深度学习 2&#xff1a;第 2 部分第 12 课 原文&#xff1a;medium.com/hiromi_suenaga/deep-learning-2-part-2-lesson-12-215dfbf04a94 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它&#xff0c;…

【EAI 016】VIMA: General Robot Manipulation with Multimodal Prompts

论文标题&#xff1a;VIMA: General Robot Manipulation with Multimodal Prompts 论文作者&#xff1a;Yunfan Jiang, Agrim Gupta, Zichen Zhang, Guanzhi Wang, Yongqiang Dou, Yanjun Chen, Li Fei-Fei, Anima Anandkumar, Yuke Zhu, Linxi Fan 作者单位&#xff1a;Stanfo…

什么是ROAS以及它如何衡量广告活动的有效性

有没有想过您的广告活动效果如何&#xff1f;想想 ROAS&#xff0c;即广告支出回报率。ROAS衡量的是每花一美元广告所产生的收入。虽然 ROAS 是一个强大的指标&#xff0c;可以为我们提供丰富的见解&#xff0c;但不应孤立地考虑它。本文将带你了解什么是 ROAS 以及它如何衡量广…

Qt中程序发布及常见问题

1、引言 当我们写好一个程序时通常需要发布给用户使用&#xff0c;那么在Qt中程序又是如何实现发布的呢&#xff0c;这里我就来浅谈一下qt中如何发布程序&#xff0c;以及发布程序时的常见问题。 2、发布过程 2.1、切换为release模式 当我们写qt程序时默认是debug模式&#x…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏17(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言制作木板UI直接复制和工具一样的即可检查背包是否有指定数量的空插槽 源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇…

解决Typora导出HTML不显示图片

解决Typora导出HTML不显示图片 产生原因 Typora导出HTML不显示图片&#xff0c;可能时图片存放在我们的硬盘中。 我们可以将markdown中的图片转化为base64格式&#xff0c;嵌入到html中。 解决步骤 首先&#xff0c;下载 TyporaToBase64.jar 密码:45jq 其次&#xff0c;将…

【数据库】索引的使用

【数据库】索引的使用 前言出发示例创建表Explain 查看sql执行计划where 查询解析无索引有索引 where oderBy 查询解析无索引有索引 总结 前言 在数据库设计过程中&#xff0c;常需要考虑性能&#xff0c;好的设计可以大大提高sql 语句的增删改查速度。在表的创建过程中&…

flask+python企业产品订单管理系统938re

在设计中采用“自下而上”的思想&#xff0c;在创新型产品提前购模块实现了个人中心、个体管理、发布企业管理、投资企业管理、项目分类管理、产品项目管理、个体投资管理、企业投资管理、个体订单管理、企业订单管理、系统管理等的功能性进行操作。最终&#xff0c;对基本系统…

Linux---网络基础

计算机中的常见概念 协议&#xff08;Protocol&#xff09;&#xff1a; 协议是计算机网络中用于通信的规则和约定的集合。它规定了数据传输的格式、序列、错误检测和纠正方法等。常见的网络协议包括TCP/IP、HTTP、FTP等。 IP地址&#xff08;IP Address&#xff09;&#xf…

Java:JDK8新特性(Stream流)、File类、递归 --黑马笔记

一、JDK8新特性&#xff08;Stream流&#xff09; 接下来我们学习一个全新的知识&#xff0c;叫做Stream流&#xff08;也叫Stream API&#xff09;。它是从JDK8以后才有的一个新特性&#xff0c;是专业用于对集合或者数组进行便捷操作的。有多方便呢&#xff1f;我们用一个案…

Nginx实战:1-安装搭建

目录 前言 一、yum安装 二、编译安装 1.下载安装包 2.解压 3.生成makefile文件 4.编译 5.安装执行 6.执行命令软连接 7.Nginx命令 前言 nginx的安装有两种方式&#xff1a; 1、yum安装&#xff1a;安装快速&#xff0c;但是无法在安装的时候带上想要的第三方包 2、…

Kafka集群安装与部署

集群规划 准备工作 安装 安装包下载&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1BtSiaf1ptLKdJiA36CyxJg?pwd6666 Kafka安装与配置 1、上传并解压安装包 tar -zxvf kafka_2.12-3.3.1.tgz -C /opt/moudle/2、修改解压后的文件名称 mv kafka_2.12-3.3.1/ kafka…

华为数通方向HCIP-DataCom H12-821题库(单选题:461-480)

第461题 以下关于路由策略特点的描述,错误的是哪一项? A、能够修改路由属性,但是不能改变网络流量经过的路径 B、能通过控制路由器的路由表规模,来节约系统资源 C、能通过控制路由的接收、发布和引入,以提高网络的安全性 D、能通过修改路由属性,对网络数据流量可以合理规…