宝塔面板如何解决redis持续占用内存过高的问题

玩技站长
玩技站长
管理员, Keymaster
11250
文章
0
粉丝
运维笔记评论511字数 424阅读1分24秒阅读模式

今天需要优化的问题如何解决redis持续运行导致服务器内存占用逐渐变大的问题:

宝塔面板如何解决redis持续占用内存过高的问题-图片1

要解决这个问题,首先要了解redis info信息中几个数据的意义:

used_memory:810575104 //数据占用了多少内存(字节)

used_memory_human:773.02M //数据占用了多少内存(带单位的,可读性好)

used_memory_rss:885465088   //redis占用了多少内存

used_memory_rss_human:844.45M //redis占用了多少内存(带单位的,可读性好)

used_memory_peak:2001274696 //占用内存的峰值(字节)

used_memory_peak_human:1.86G //占用内存的峰值(带单位的,可读性好)

mem_fragmentation_ratio:1.09   //内存碎片率

里面需要注意的有:

used_memory_human,代表redis数据数据占用内存的大小,

used_memory_rss_human,代表服务器时下为redis分配的内存大小,也就是redis具体占用内存的大小

used_memory_peak_human,代表redis在使用期间最高占用了多少内存。

mem_fragmentation_ratio = used_memory_rss / used_memory

mem_fragmentation_ratio,越低越高,趋向于1,大于1的部分redis碎片占用的大小。范围在1 - 1.5,大于1.5说明碎片过多,必须要清理了。

redis的碎片清理:

redis4.0以前内存碎片过多的情况下只能关闭redis重启后才能生效。

redis4.0以后新增了配置项:activedefrag

redis的配置项activedefrag默认为no,未开启,不会自动回收内存清理碎片,

当需要清理碎片的时候,使用命令

config set activedefrag yes

将activedefrag的配置设置为开启状态。则redis会自动清理碎片,回收内存。

宝塔面板如何配置:(需要将activedefrag yes前面的#注释掉重启即可)

宝塔面板如何解决redis持续占用内存过高的问题-图片2

原创声明:本文章为原创内容,所有文章均由博主亲自撰写,严格遵循原创原则。我们承诺不使用任何人工智能生成的内容,所发布的每一篇文章都经过深思熟虑,旨在为读者提供真实、有价值的观点和信息。我们坚信原创才是知识分享的根本,致力于为广大读者呈现最具真实性和独特性的文章。感谢您的支持与关注,欢迎持续关注我们的原创内容。

匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证