redis的aof与rdb(redis的aof怎么手动触发)

技术Redis中AOF有哪些潜在的阻塞点这篇文章给大家分享的是有关Redis中AOF有哪些潜在的阻塞点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。AOF有哪些潜在的阻塞点1. Redis采用

本文是关于AOF在Redis的潜在堵点。我觉得边肖很实用,就和大家分享一下作为参考。让我们跟着边肖看一看。

AOF有哪些潜在的阻塞点

1. Redis采用fork子进程重写AOF文件时,有潜在的阻塞风险

1)、fork子进程

fork子进程,瞬间fork肯定会阻塞主线程(注意fork时不会将所有内存数据一次性复制到子进程),fork采用操作系统提供的写实复制(Copy On Write)机制,就是为了避免一次性拷贝大量内存数据给子进程造成的长时间阻塞问题.【相关推荐:Redis视频教程】

但是,fork子进程需要复制进程的必要数据结构,其中之一就是拷贝内存页表(虚拟内存和物理内存的映射索引表)。这个复制过程会消耗大量的CPU资源,在复制完成之前整个过程都会被阻塞。阻塞时间取决于整个实例实例越大,内存页表越大,fork阻塞时间越久.的内存大小

复制内存页表后,子进程和父进程指向同一个内存地址空间,也就是说,虽然此时生成了子进程,但并不适用与父进程相同的内存大小。

亲子过程什么时候才能真正脱离记忆?

“写实复制”顾名思义,就是在写发生时,才真正拷贝内存真正的数据,这个过程中,父进程也可能会产生阻塞的风险,就是下面介绍的场景.

2)、AOF重写中父进程有写入的场景

分叉的子进程指向与父进程相同的内存地址空间。此时,子进程可以执行AOF重写,并将内存中的所有数据写入AOF文件。

但是,此时,父进程仍有流量要写。如果父进程正在操作一个现有的键,那么父进程实际上将复制对应于该键的内存数据,并申请新的内存空间。于是,渐渐地,父子进程的内存数据开始分离,父子进程逐渐有了自己独立的内存空间。因为内存分配是基于页面的,默认值是4k,如果此时父进程正在操作bigkey,则重新申请大块内存需要更长时间,这可能会导致阻塞风险。

此外,如果操作系统打开内存大页机制(Huge Page,页面大小2M),父进程申请内存时阻塞的概率将大大提高,因此需要在Redis机器上关闭巨型页面机制。每次Redis fork生成RDB或AOF重写完成时,您可以看到父进程在Redis日志中重新应用了多少内存空间。

3)、AOF重写为什么不复用AOF本身日志呢

AOF在不重用AOF本身的情况下重写日志:

一个原因是父子进程写同一个文件必然会产生竞争问题,控制竞争意味着会影响父进程的性能。

第二,如果AOF的重写过程失败了,那么原来的AOF文件就相当于被污染了,无法恢复使用。因此,Redis AOF重写了一个新文件。如果重写失败,直接删除这个文件就可以了,不会影响原来的AOF文件。重写完成后,直接替换旧文件即可。

感谢阅读!这篇关于“AOF在Redis有哪些潜在的阻碍点”的文章就分享到这里。希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157070.html

(0)

相关推荐

  • Java SE 7文件操作中的路径操作是怎样的

    技术Java SE 7文件操作中的路径操作是怎样的Java SE 7文件操作中的路径操作是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获

    攻略 2021年11月21日
  • 如何进行Sqlserver数据写入表的测试

    技术如何进行Sqlserver数据写入表的测试如何进行Sqlserver数据写入表的测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、创

    攻略 2021年11月29日
  • Oracle 12c RAC如何安装PSU

    技术Oracle 12c RAC如何安装PSU这篇文章给大家分享的是有关Oracle 12c RAC如何安装PSU的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、准备工作1,数据库环境操作系

    攻略 2021年11月18日
  • C语言中柔性数组怎么用

    技术C语言中柔性数组怎么用这篇文章主要为大家展示了“C语言中柔性数组怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中柔性数组怎么用”这篇文章吧。定义可调整大小的数

    攻略 2021年11月14日
  • 写朋友深厚友情的诗句,朋友之间感情深厚的诗句

    技术写朋友深厚友情的诗句,朋友之间感情深厚的诗句1写朋友深厚友情的诗句、黄鹤楼送孟浩然之广陵唐代:李白
    故人西辞黄鹤楼,烟花三月下扬州。
    孤帆远影碧空尽,唯见长江天际流。 (唯 通:惟)
    译文:老朋友向我频频挥手,告别了

    生活 2021年10月29日
  • javascript函数式编程指南(javascript的基本语法)

    技术JavaScript基础的函数有哪些今天就跟大家聊聊有关JavaScript基础的函数有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、函数简介1.1.

    攻略 2021年12月20日