Redis变慢了?之三

Redis变慢了?之三

  • Redis变慢了
  • fork耗时
    • 优化方案
  • AOF
    • AOF策略
    • 对性能影响
  • 最后

Redis变慢了

Redis变慢上一篇文章地址:Redis变慢了?之二 这篇文章继续Redis变慢情况的分析。

fork耗时

在 Redis 中,fork 是一个非常重要的操作,它被用于创建子进程。Redis 使用 fork 来执行持久化操作,比如 RDB 和 AOF 持久化。在执行持久化操作期间,Redis 会 fork 出一个子进程,由子进程来执行实际的持久化操作,而父进程则继续处理客户端请求和其他操作。当 Redis 执行 fork 操作时,它会使用 Copy-on-Write 技术来避免不必要的内存复制,从而提高性能和效率。

需要注意的是,在 Redis 中使用 fork 操作时需要格外小心,因为 fork 操作会将整个父进程的内存空间复制一份到子进程中。如果 Redis 实例的内存非常大,那么 fork 操作可能会导致非常高的内存占用和系统负载,甚至可能导致系统崩溃。因此,在使用 Redis 进行持久化操作时,需要注意控制 Redis 实例的内存使用,以避免出现问题。

查看fork执行时长的命令可以用

127.0.0.1:6379> info

这是可以看到返回的Redis实例信息中上一次fork耗时,单位是微秒
在这里插入图片描述
在主进程fork子进程期间,整个Redis实例阻塞无法处理客户端请求,耗时越久对业务系统的影响也就越大。

优化方案

针对fork耗时产生的原因,那么首先就是控制Redis实例的内存,控制在一个合适的范围,比如10G以下,实例内存越大耗时越长;合理配置持久化策略,比如在从库执行持久化操作,如果只是拿Redis做缓存提高业务响应效率的话也可以不用开启数据持久化;最后就是Redis实例不要部署在虚拟机上,虚拟机比物理机fork耗时更久。

AOF

Redis AOF(Append Only File)是一种持久化方式,它会将所有写入 Redis 服务器的操作以追加的方式写入一个文件中,以此来保证数据在服务器重启后不会丢失。

AOF策略

AOF 持久化有三种策略,也就是appendfsync的三种值:
always:每个写命令都立刻同步到磁盘,保证最高的数据安全性,但是会降低 Redis 的性能。
everysec:每秒同步一次到磁盘,性能和安全性的平衡。
no:只在服务器退出时同步到磁盘,性能最高但数据安全性最差。

对性能影响

针对这三种策略对性能有不同的影响:
always:每处理一次写操作就会执行一次写入磁盘,由于都是在主线程执行,会拖慢Redis性能。
no:每次写操作只处理内存,刷盘由操作系统决定,有丢失数据的风险,如果是缓存数据可以设置为no。
everysec:主线程写完就返回,刷盘操作放在后台线程执行,每个1秒执行一次刷盘。虽然是最合适的刷盘方案,但是如果后台线程刷盘时IO负载很高,而主线程写操作继续,后台子线程由于磁盘负载过高,导致 fsync 发生阻塞,迟迟不能返回,那主线程在执行 write 系统调用时,也会被阻塞住,直到后台线程 fsync 执行完成后,主线程执行 write 才能成功返回。

简单说就是Redis 的 AOF 后台子线程刷盘操作,撞上了子进程 AOF fork,因此

# AOF rewrite 期间,AOF 后台子线程不进行刷盘操作no-appendfsync-on-rewrite yes

最后

后续有时间会继续探索Redis 变慢原因方面的问题…

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

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

相关文章

【C++】list 容器的增删改查---模拟实现(图例超详细解析!!!)

目录 一、前言 二、 list 容器的模拟实现思 ✨ 模块分析 ✨ 作用分析 三、list的节点类设计 四、list 的迭代器类设计 ⭐ 迭代器类--存在的意义 ⭐ 迭代器类--模拟实现 💦 模板参数 和 成员变量 💦 构造函数 💦 运算符的重载 &…

Rancher注册已有k8s集群

Rancher安装后注册K8s集群操作 1.Rancher安装 编辑docker—compose文件 version: 3.8services:rancher:image: registry.cn-hangzhou.aliyuncs.com/rancher-images/rancher:v2.8.5container_name: rancherprivileged: truerestart: unless-stoppedports:- "18080:80&qu…

昨天发的 npm 包,却因为 registry 同步问题无法安装使用

用过 HBuilderX 云打包的都知道,云上面的 Android 环境很有限,其实并不能覆盖 uniapp 生态所有的版本,甚至说只能覆盖最新的一两个版本。 如果你需要用到 HBuilderX 安卓云打包,就必须及时跟进 HBuilderX 的版本更新,…

全面升级,票据识别新纪元:合合信息TextIn多票识别2.0

票据识别 - 自动化业务的守门员 发票、票据识别,是OCR技术和RPA、CMS系统结合的一个典型场景,从覆盖率、覆盖面的角度来说,应该也是结合得最成功的场景之一。 产品简介 国内通用票据识别V2.0(简称“多票识别2.0”)是…

Java 集合框架详谈及代码分析(Iterable->Collection->List、Set->各接口实现类、Map->各接口实现类)

目录 Java 集合框架详谈及代码分析(Iterable->Collection->List、Set->各接口实现类、Map->各接口实现类)1、集合概述1-1:Java 集合概述1-2:List、Set、Map 三者的区别?1-3:集合框架底层数据结…

腾讯云[HiFlow】| 自动化 -------HiFlow:还在复制粘贴?

文章目录 前言:一:HiFlow是什么二:功能介绍1.全连接2.自动化2.1定时处理特定任务2.2实时同步变更信息2.3及时获取通知提醒 3.零代码4.多场景5.可信赖 三:用户体验最后 前言: 随着网络时代的不断发展,自动化…

KEYSIGHT是德E5063A网络分析仪

主要功能特性 E5061B 选择50或75Q输入 使用低频-射频选件(选件3L5/3L4/3L3)满足各类应用需求 频率最低达到5Hz 网络分析和阻抗分析相结合(需要选件005) 支持BenchVue 软件 E5063A 2端口,50Q,S参数测试仪 选择最适合您的测试需求和预算的VNA频率选件&…

spark学习总结

系列文章目录 第1天总结:spark基础学习 1- Spark基本介绍(了解)2- Spark入门案例(掌握)3- 常见面试题(掌握) 文章目录 系列文章目录前言一、Spark基本介绍1、Spark是什么1.1 定义1.2 Spark与M…

如何在2分钟内测出浓香型白酒的年份?

执笔 | 敏 敏 编辑 | 古利特 金庸先生所著的武侠小说《射雕英雄传》第十二回中,“北丐”洪七公在教授郭靖降龙十八掌时,用陈年美酒形容“亢龙有悔”——“(亢龙有悔)好比陈年美酒,上口不辣,后劲却醇厚无比…

【机器学习】使用Python实现图神经网络(GNN):图结构数据的分析与应用

🔥 个人主页:空白诗 文章目录 一、引言二、图神经网络的基础知识1. 图的基本概念和术语2. 传统的图分析方法3. 图神经网络的基本原理4. GNN的基本模型 三、主要的图神经网络模型1. 图卷积网络(Graph Convolutional Network, GCN)2…

【并发编程】JUC并发编程

JUC并发编程 1. 线程基础知识复习2. CompletableFuture2.1 Future接口理论知识复习2.2 Future接口常用实现类FutureTask异步任务2.2.1 Future接口能干什么2.2.2 Future接口相关架构2.2.3 Future编码实战和优缺点分析2.2.4 完成一些复杂的任务 2.3 CompletableFuture对Future的改…

数学建模基础:统计模型

目录 前言 一、概率与统计基础 二、统计模型 三、Matlab统计工具箱 四、实例示范:市场调查分析 步骤 1:数据导入 步骤 2:数据可视化 步骤 3:建立多元线性回归模型 步骤 4:模型验证 步骤 5:模型应…

ArcGIS制作规划图卫星影像地图虚化效果

文章目录 一、效果展示二、加载数据三、效果制作四、注意事项一、效果展示 二、加载数据 订阅专栏后,从csdn私信查收实验数据资料,加载ArcGIS制作规划图卫星影像地图虚化效果.rar中的数据,如下所示: 三、效果制作 1. 创建掩膜图层 新建一个矢量图层,因为主要是作图需要…

深入探讨:UART与USART在单片机中串口的实际应用与实现技巧

单片机(Microcontroller Unit, MCU)是一种集成了处理器、存储器和输入输出接口的微型计算机。它广泛应用于嵌入式系统中,用于控制各类电子设备。UART和USART是单片机中常见的通信接口,负责串行数据传输。下面我们详细介绍它们在单…

Qt底层原理:深入解析QWidget的绘制技术细节(1)

在Qt5中,QWidget的绘制流程比较分散,网上介绍的文章也很少,因此写一篇文章总结记录一下这部分的知识点。 笔者使用的是Qt5.15.2的源码。 基本的绘制流程:从update到合成 更新请求(Invalidate): 当一个QWidg…

001、DM8安装

参照:https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.html 1. 准备工作 操作系统查看 [rootora19c ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)新建用户 [rootora19c ~]# groupadd dinstall -g 2001 [rootora19c ~]# …

数据分析第十二讲 数据可视化入门(一)

数据可视化入门(一) 在完成了对数据的透视之后,我们可以将数据透视的结果通过可视化的方式呈现出来,简单的说,就是将数据变成漂亮的统计图表,因为人类对颜色和形状会更加敏感,然后再进一步解读…

AXI三板斧之Outstanding、Out-of-order、interleaving

1、AXI三板斧之Outstanding 可以不用等单个命令的响应,直接连续发送N个命令(N>1),假设Slave端的Outstanding能力为N时(N>1),那么Master端可以在Slave不返回读数据的情况下,连…

SARscape——Frost斑点滤波

目录 一、算法原理1、概述2、参考文献 二、软件操作三、结果展示1、原始图像2、滤波结果 一、算法原理 1、概述 2、参考文献 [1] 廉小亲,黄雪,高超,等. 基于Frost滤波和改进CNN的SAR图像TR方法 [J]. 计算机仿真, 2023, 40 (05): 49-55233. [2] SAR图像相干斑滤波算法研究_朱俊…

资深专家教你如何开展新版FMEA培训

新版FMEA的出现,不仅优化了原有的分析流程,更引入了一系列创新的理念和方法,为企业提供了更为全面、细致的风险评估与管理手段。因此,开展新版FMEA培训对于提升企业的质量管理水平、增强产品竞争力具有重要意义。 本文&#xff0…