设为首页 收藏本站
查看: 1974|回复: 0

[经验分享] 线上redis服务内存异常分析。

[复制链接]

尚未签到

发表于 2015-7-20 09:02:42 | 显示全部楼层 |阅读模式
  项目中,新增了一个统计功能,用来统计不同手机型号的每天访问pv,看了下redis2.6有个setbit的功能,于是打算尝尝鲜把
  redis从2.4更新到了2.6
  因为是租了vps。服务器的内存只有4g可以用,最近发现系统 负载很大。发现是redis服务引起的。
  查了下redis的key db1 6w+。db1 不到2k。内存监控确有4.5g(这个很奇怪)。
DSC0000.jpg
  
  这是很不正常的。想了最近在db1加了很多bit。于是把db1 flushdb。
  发现内存占用一下就刷刷的降下来了。
DSC0001.jpg
  查了不少关于reids bit的资料。刚开始还坚信可能是redis的一个bug。昨天晚上找了凌晨2点多。还是没啥头绪。很恼火。
  今天仔细看了下redis的 setbit 命令。恍然大悟。我做了件多么傻b的事情。
  setbit 命令
  SETBIT key offset value
  参数 offset  的说明
  offset 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内)。
对使用大的 offset 的 SETBIT 操作来说,内存分配可能造成 Redis 服务器被阻塞。具体参考 SETRANGE 命令,warning(警告)部分。

然后在程序中查看我的offset设置。
因为是需要统计某个机型每天的pv。所有为了最大限度防止误差,offset 格式是当前时间的HHmmssss



SimpleDateFormat msdf = new SimpleDateFormat("HHmmssss");
long offset = Long.valueOf(msdf.format(new Date()));//时分秒毫秒
redisClient.setBit(hkey,offset,true);

  算了下offset的最大值是23595999 最小值是0,平均值是11798000,也就是说。在二进制数据上在11798000位上置1
  然后又算了下
  11798000/8/1024/1024=1.4M
  因为 db1 全是bit结构,差不多2k的样子。这样一共占用了1.4*2k=2.8g内存。
  这就找出问题所在了。修改offset的大小即可。
  


  
  
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-88438-1-1.html 上篇帖子: Redis事务的分析及改进 下篇帖子: redis合库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表