Redis内存溢出问题排查

最近生产环境服务器上的redis内存波动,导致了一次OOM,查询/var/log/messages后发现原本只会在1~2G大小之间波动的Redis内存竟然达到8G,然后OOM被主动Kill。

因为过年期间并没有更新过代码,所以一直完好运行的程序应该不会出现大的BUG去大量写入数据到Redis。于是检查起Redis配置(redis_version:3.2.10)。

设置 maxmemory

查看了一下正在运行的Redismaxmemory为0

1

2

3127.0.0.1:6379> CONFIG GET maxmemory

1) "maxmemory"

2) "0"

设定一个合理的最大使用量避免OOM,我这边根据业务实际情况设置成2G

1

2

3

4

5127.0.0.1:6379> CONFIG SET maxmemory 2G

OK

127.0.0.1:6379> CONFIG GET maxmemory

1) "maxmemory"

2) "2147483648"

另外在/etc/redis.conf设置maxmemory 2G

刷新策略

观察服务器内存碎片是否过高,公式如下

1mem_fragmentation_ratio=used_memory_rss/used_memory

当值大于1时表明有内存碎片,越大越多。小于1代表正在使用虚拟内存(使用磁盘),需要增加内存。

值在1~1.5之间属于较好范围。我观察到服务配置中使用的是默认的永不过期策略

1

2<

redis 内存不足 排查_Redis内存溢出问题排查相关推荐

  1. redis 内存不足 排查_Redis——内存占用优化

    # 1.优化内存占用 了解redis的内存模型,对优化redis内存占用有很大帮助.下面介绍几种优化场景. - 1)利用jemalloc特性进行优化 上一小节所讲述的90000个键值便是一个例子.由于 ...

  2. redis 内存不足 排查_Redis 系统学习之 redis 内存模型

    关注:架构师学习路线,每日更新互联网最新技术文章与你不断前行,实战资料,笔试面试 前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并 ...

  3. Java堆外内存:堆外内存溢出问题排查

    一.堆外内存组成 通常JVM的参数我们会配置 -Xms 堆初始内存  -Xmx 堆最大内存  -XX:+UseG1GC/CMS 垃圾回收器  -XX:+DisableExplicitGC 禁止显示GC ...

  4. java内存溢出模拟_模拟实战排查堆内存溢出(java.lang.OutOfMemoryError: Java heap space)问题...

    前言: 模拟实战中排查堆内存溢出(java.lang.OutOfMemoryError: Java heap space)的问题. 堆内存溢出的原因:一般都是创建了大量的对象,这些对象一直被引用着,无 ...

  5. 程序员知识图谱-Java 内存溢出的排查方法

    内存溢出分类 Java 里面内存溢出主要分以下几种: 堆溢出 1.内存溢出(无法申请到内存) jstat 查看内存使用情况,检查堆参数,一般是申请的内存太大,比如一个特别大的 byte 数组 2.内存 ...

  6. linux 内存溢出排查_java 内存溢出 栈溢出的原因与排查方法

    1. 内存溢出的原因是什么? 内存溢出是由于没被引用的对象(垃圾)过多造成JVM没有及时回收,造成的内存溢出.如果出现这种现象可行代码排查: 一)是否应用中的类中和引用变量过多使用了Static修饰 ...

  7. redis同步效率秒_redis过期策略、内存淘汰策略、持久化方式、主从复制

    一.Redis的过期策略以及内存淘汰策略: 1.过期策略:定期删除+惰性删除: ①定期删除:redis默认每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如果有过期就删除.注意这里 ...

  8. jvm 内存溢出问题排查方法

    如果你做TCP通讯或者map集合操作,并发处理等功能时,很容易出现 Java 内存溢出的问题.本篇文章,带领大家深入jvm,分析并找出jvm内存溢出的代码. jvm中除了程序计数器,其他的区域都有可能 ...

  9. 内存分析_Redis内存爆炸增长?你需要知道这一套Redis内存分析方法

    Redis Redis介绍 NoSQL Redis是当前比较热门的NOSQL数据库之一,和Memcache一样,数据都是缓存在计算机内存中.完全开源免费,遵守BSD协议,是一个高性能的key-valu ...

最新文章

  1. 持久层框架之MyBatis
  2. MyEclipse中JavaMail冲突问题
  3. GraphQL入门之graphql-java项目的介绍
  4. 阿里云linux下web服务器配置
  5. python获取系统当前时间并转utc时间为绝对秒数_用Python将datetime.date转换为UTC时间戳...
  6. L-BFGS算法/Broyden族/BFGS算法/阻尼牛顿法的Python实现代码
  7. coddenomicon工具
  8. Hadoop平台 以Parcel包安装CDH
  9. Reddit程序员的酒后真言
  10. [WORK]局数据系统
  11. signature=01a8bb5f15835faa2985256d36b2fe94,Point of Maintenance
  12. sphinx xmlpipe2 php,PHP+MongoDB+Coreseek/Sphinx打造搜索引擎
  13. [转] Android实时抓包分析 : 善用adb调试桥
  14. 蓝桥杯2021国赛太原理工大学获得14枚奖牌
  15. 10-08 长假结束
  16. 做开源,兴趣是最好的源动力 | 龙蜥开发者说第1期
  17. 图片渲染延迟_Qt入门DirectX11学习之旅(六)DirectX11 GBuffer Deffered延迟渲染
  18. 笔记本 续航测试软件,PCMark 10新增续航、办公测试:考验笔记本电池
  19. Android studio 菜单栏搞不见了
  20. 界面·财联社完成C轮5亿元融资;希尔顿花园酒店品牌首度落子北京 | 美通企业日报...

热门文章

  1. Java学习之道:空指针错误求解救????????????
  2. gms签名不一致_怎么给ios软件签名
  3. word百度三维地图经纬度调整系数
  4. mysql一个表能写2个auto_in_MySQL基础(二)操作表记录
  5. 【Android】Handler 深度解析
  6. 北汇信息正式成为东方中科旗下成员企业
  7. SQL Server 2008 R2 新特性之一
  8. 钢琴学习微信小程序开发功能
  9. 前端面试题js篇,持续更新
  10. 如何转型为新零售商业模式 新零售系统都有哪些功能?