Redis Cluster内存使用分析

问题缘由


测试反馈资料缓存100w用户,资料占据20G,和评估的差距比较大,需要分析一下原因很在。

加载前后内存对比

分析过程


1. 实例分析

利用ps -ef|grep redis查看启动了两个实例

两个实例

redis-cli  -h 127.0.0.1 -p 7370 -c登陆客户端,使用info memory查询信息

Redis memory信息

每个实例大概7.17G。内存碎片率mem_fragmentation_ratio大概是1.05。基本正常。

2. 版本查看

info来查看实力整体信息以及版本。

info信息

3. 记录分析

redis-cli --bigkeys -h 127.0.0.1 -p 7370 -c分析最大key信息。

最大key分析

用debug object SUBS_339828来分析最大key的就大小。

key的占用大小

利用hgetall SUBS_339828来查看记录情况

hgetall获取记录信息

查看key类型和对应的hash的field数目

key分析

小结

1、这个环境有两个实例,每个实例实际数据7.17G。峰值10G,使用率还是比较高。

2、100w数据大概有400w keys。SUBS有42个记录。每个记录大概有3K,这个占比比设想的大,实际生产应该会比这个少。

3、存在一个字段hash。改造为string方式节省空间。

4、版本较老,改为新版本,会省下一些空间。

5、配置文件hash-max-ziplist-value 缺省为64,参数可以调整为128。对于SUBS相关记录会做压缩,减少空间。对应性能影响较少,并且Fields数目越少影响越少。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,198评论 1 51
  • 本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概...
    kelgon阅读 61,421评论 23 625
  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 9,490评论 2 27
  • 感恩今天了一老师精彩的课程分享,让自己学习到了人生之路的必修课。感恩今天所有的同学,我们有了认识的机会。感恩一切。晚安!
    毕兰江慈悲阅读 734评论 0 0
  • 我想遇到跟我性格相似爱好相似家庭背景相似的朋友室友情人~然而并不能如愿,并使自己跟所有的人关系都一样~像穿梭在社会...
    怪弟弟阅读 825评论 0 0