news 2026/8/29 8:23:01

性能测试必备知识|如何管理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/8/22 1:29:38

跨平台AI绘画解决方案:Z-Image-Turbo云端部署指南

跨平台AI绘画解决方案&#xff1a;Z-Image-Turbo云端部署指南 如果你所在的团队使用多种操作系统&#xff08;Windows、macOS、Linux等&#xff09;&#xff0c;想要让所有成员都能访问相同的AI绘画工具和环境&#xff0c;那么Z-Image-Turbo的云端部署方案可能正是你需要的。这…

作者头像 李华
网站建设 2026/8/26 10:20:32

Z-Image-Turbo光影控制能力分析:阳光与阴影处理

Z-Image-Turbo光影控制能力分析&#xff1a;阳光与阴影处理 引言&#xff1a;AI图像生成中的光影挑战 在AI图像生成领域&#xff0c;真实感光照模拟一直是衡量模型表现力的核心指标之一。光线的方向、强度、色温以及由此产生的阴影分布&#xff0c;直接决定了画面的立体感、氛围…

作者头像 李华
网站建设 2026/8/28 14:48:36

元旦前去云南游玩得留意,两大景区要注意+一份贴心游玩攻略

马上就到2026年元旦&#xff0c;云南昆明西山风景区、丽江玉龙雪山这两个著名景区发布了温馨提示&#xff0c;给游客出行提个醒&#xff0c;另外&#xff0c;还有一份&#xff0c;饱含个人情感的云南游玩分享&#xff0c;能让35岁及以上的人&#xff0c;更易体会到旅行与生活的…

作者头像 李华
网站建设 2026/8/22 4:09:27

AI绘画变现指南:如何用预配置镜像快速搭建Z-Image-Turbo商业化服务

AI绘画变现指南&#xff1a;如何用预配置镜像快速搭建Z-Image-Turbo商业化服务 如果你是一名自由职业者&#xff0c;希望通过AI绘画技术实现创收&#xff0c;但苦于不知如何将技术转化为可持续的业务&#xff0c;那么Z-Image-Turbo预配置镜像可能是你的理想选择。本文将详细介绍…

作者头像 李华