Redis中存在的两大阻塞:fork阻塞和AOF追加阻塞

本文深入探讨了Redis中的两种主要阻塞现象:fork阻塞,涉及CPU资源;AOF追加阻塞,关乎硬盘性能。详细阐述了fork操作如何影响Redis性能,并提出了减轻阻塞的策略。同时,分析了AOF追加阻塞的原因及监控与定位方法。
摘要由CSDN通过智能技术生成

前言:

在之前的文章中介绍过Redis的持久化策略,和Redis的底层模型。这篇文章主要介绍Redis中存在的两大阻塞情况,Fork阻塞和AOF追加阻塞。


1. fork阻塞:CPU的阻塞

在Redis中,众多因素导致Redis单机内存不能过大。

  • 当面对请求暴增时,需要从库扩容,如果单机内存过大会导致扩容时间过长;
  • 当主机宕机后,切换主机需要重新挂载从库,Redis内存过大会导致挂载速度过慢;
  • 持久化过程中的fork操作

fork操作:

父进程通过fork操作可以创建子进程;子进程创建后,父子进程共享代码段,不共享进程的数据空间。但是子进程会获得父进程的数据空间副本。在操作系统层面,基本都采用写时复制,也就是父子进程视图修改数据空间之前,父子进程实际上可以共享数据空间;但是当父子进程中任何一个视图修改数据空间时,操作系统会为修改的那一部分(内存的一页)制作一个副本。

虽然fork时,子进程不会复制父进程的数据空间,但是会复制内存页表(页表相当于内存的索引、目录);父进程的数据空间越大,内存页表越大,fork时复制耗时也会越多。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值