当前位置:首页 > 内存 > 正文

redis查看内存占用(redis内存占用分析)

  • 内存
  • 2024-07-03 23:42:45
  • 7597

一、Redis内存故障诊断及常用运维命令您是否遇到过这样的问题:我的数据量很小,但仍然出现OOM错误?
首先给大家解释一下,Redis中有两种OOM
简单介绍一下Redis内存消耗的划分,为下面的内容提供思路诊断。上图可以将Redis的内存消耗总结为以下几个部分:
使用redis-benchmark不断注入数据
对输入缓冲区造成压力(防止干扰,先清除数据再按)测试)
压力测试几秒后,触发OOM
检查输入缓冲区的内存消耗情况。可以看到客户端输入缓冲区总消耗量约为2.4G。远远超出了maxmemory参数设置。
您可以通过上面的检查命令来定位每个客户端输入缓冲区的内存消耗情况(从大到小排序)。
一般情况下,如果出现连接异常,可以使用下面的命令杀死它
为了方便测试,我直接将复制积压缓冲区配置为800M。
启动redis-benchmark压力测试流程
检查复制积压缓冲区的内存消耗情况。可以看到,由于缓冲区设置过大,数据量只有190多M,Redis无法写入。。
客户端输出缓冲区过大如何排查?一般这种场景比较少见,在使用redis的monitor命令时比较常见
先启用monitor命令
在上面的排查过程中,我认为一些Redis运维命令比较实用,总结如下
脚本执行效果:
二、redis集群模式整体缓存的数据量应控制在集群背面的缓冲数据量一般应控制在20G以下。根据查询信息,Redis服务器实例数量超过1000个,另外100个实例的内存控制在20G以下。所以他们规定低于20G。


三、Redis的各数据类型的内存占用首先给我们一个分析Redis内存使用情况的URL: