news 2026/2/24 2:58:12

性能测试必备知识|如何管理Redis的内存?全是硬货

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
性能测试必备知识|如何管理Redis的内存?全是硬货

随着使用Redis的深入,我们不可避免的需要深入了解优化Redis的内存,本章将重点讲解如何管理Redis的内存。关注我们,每天都有技术好文分享给大家,小伙伴们觉得有用的话记得转发给身边的朋友哦。

一、内存消耗

当mem_fragmentation_ratio>1时,说明used_memory_rss-used_memory多出的部分内存并没有用于数据存储,而是被内存碎片所消耗,如果两者相差很大,说明碎片率严重。当mem_fragmentation_ratio<1时,这种情况一般出现在操作系统把Redis内存交换(Swap)到硬盘导致,出现这种情况时要格外关注,由于硬盘速度远远慢于内存,Redis性能会变得很差,甚至僵死。

Redis进程内消耗主要包括:自身内存+对象内存+缓冲内存+内存碎片,其中Redis空进程自身内存消耗非常少,通常used_memory_rss在3MB左右,used_memory在800KB左右,一个空的Redis进程消耗内存可以忽略不计。

缓冲内存主要包括:客户端缓冲、复制积压缓冲区、AOF缓冲区。客户端缓冲指的是所有接入到Redis服务器TCP连接的输入输出缓冲。输入缓冲无法控制,最大空间为1G,如果超过将断开连接。

复制积压缓冲区:Redis在2.8版本之后提供了一个可重用的固定大小缓冲区用于实现部分复制功能,根据repl-backlog-size参数控制,默认1MB。对于复制积压缓冲区整个主节点只有一个,所有的从节点共享此缓冲区,因此可以设置较大的缓冲区空间,如100MB,这部分内存投入是有价值的,可以有效避免全量复制AOF缓冲区:这部分空间用于在Redis重写期间保存最近的写入命令,AOF缓冲区空间消耗用户无法控制,消耗的内存取决于AOF重写时间和写入命令量,这部分空间占用通常很小。

Redis默认的内存分配器采用jemalloc,可选的分配器还有:glibc、tcmalloc。内存分配器为了更好地管理和重复利用内存,分配内存策略一般采用固定范围的内存块进行分配。内存碎片问题虽然是所有内存服务的通病,但是jemalloc针对碎片化问题专门做了优化,一般不会存在过度碎片化的问题,正常的碎片率(mem_fragmentation_ratio)在1.03左右。

一般以下场景容易出现高内存碎片问题:

频繁做更新操作,例如频繁对已存在的键执行append、setrange等更新操作。大量过期键删除,键对象过期删除后,释放的空间无法得到充分利用,导致碎片率上升。

出现高内存碎片问题时常见的解决方式如下:

数据对齐:在条件允许的情况下尽量做数据对齐,比如数据尽量采用数字类型或者固定长度字符串等,但是这要视具体的业务而定,有些场景无法做到。

安全重启:重启节点可以做到内存碎片重新整理,因此可以利用高可用架构,如Sentinel或Cluster,将碎片率过高的主节点转换为从节点,进行安全重启子进程内存消耗主要指执行AOF/RDB重写时Redis创建的子进程内存消耗。Redis执行fork操作产生的子进程内存占用量对外表现为与父进程相同,理论上需要一倍的物理内存来完成重写操作。

内存大页机制(Transport Huge Pages,THP),是linux2.6.38后支持的功能,该功能支持2MB的大页内存分配,默认开启。在redis.conf中增加了一个新的配置项“disable-thp”来控制THP是否开启。

disable-thp yes

子进程内存消耗总结如下:

1、Redis产生的子进程并不需要消耗1倍的父进程内存,实际消耗根据期间写入命令量决定,但是依然要预留出一些内存防止溢出。

2、需要设置sysctl vm.overcommit_memory=1允许内核可以分配所有的物理内存,防止Redis进程

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/23 17:23:07

Z-Image-Turbo终极指南:从快速入门到高级调参技巧

Z-Image-Turbo终极指南&#xff1a;从快速入门到高级调参技巧 如果你已经玩过基础版的Stable Diffusion&#xff0c;现在想探索更专业的Z-Image-Turbo模型&#xff0c;但又担心高级功能需要复杂的环境配置和大量显存&#xff0c;那么这篇文章就是为你准备的。Z-Image-Turbo是一…

作者头像 李华
网站建设 2026/2/23 4:16:42

新研智材联合创始人CTO南凯:材料科学新纪元——AI大模型驱动研发效率倍增|2025极新AIGC峰会演讲实录

2025年12月26日&#xff0c;【想象2025极新AIGC峰会】在上海浦东浦软大厦成功召开。新研智材联合创始人&CTO南凯先生在会上做了题为《材料科学与通用模型结合的新纪元》的演讲&#xff0c;系统阐述了AI技术如何重塑材料研发范式。新研智材联合创始人&CTO 南凯南凯重点提…

作者头像 李华
网站建设 2026/2/23 19:49:44

小邦教你如何应对不同类型老板

应对不同类型的老板需要灵活调整沟通和工作策略&#xff0c;以维护职业发展和心理健康。以下基于常见老板类型提供实用建议。‌1、对于爱批评的老板‌&#xff0c;建设性反馈可接受&#xff0c;但持续负面评价会打击士气。建议在冷静时沟通&#xff0c;用比喻表达影响&#xff…

作者头像 李华
网站建设 2026/2/23 2:23:17

Z-Image-Turbo游戏角色立绘生成质量评估

Z-Image-Turbo游戏角色立绘生成质量评估 引言&#xff1a;AI角色生成的工程化实践需求 随着游戏开发周期不断压缩、美术资源成本持续攀升&#xff0c;AI辅助内容生成&#xff08;AIGC&#xff09;已成为游戏行业降本增效的关键技术路径。在众多应用场景中&#xff0c;角色立绘生…

作者头像 李华
网站建设 2026/2/23 22:22:47

M2FP模型边缘计算部署:树莓派实战案例

M2FP模型边缘计算部署&#xff1a;树莓派实战案例 &#x1f310; 项目背景与技术选型动因 随着智能安防、体感交互和虚拟试衣等应用的兴起&#xff0c;多人人体解析&#xff08;Multi-person Human Parsing&#xff09;作为细粒度语义分割的重要分支&#xff0c;正逐步从云端走…

作者头像 李华