redis内存占用过高的问题排查
2019-03-26 22:52
4027 查看
背景
在往消息系统发送消息,写入redis的时候,出现redis内存飙升的情况,原来redis服务器的内存是16G,占用约8G,后面通过补推业务数据造成了占用到90%的内存。紧急把服务器内存升级到32G,再继续补推数据,内存飙升的情况还继续,在一两个小时内又飙升到92%左右。
排查过程
用上重启大法
分别重启了redis的从库,主库,都没用。这个方案pass。
是否有内存碎片?
怀疑是频繁修改redis里值过大的key引起的,后来在测试环境对某个有6千多个值的key进行修改1万次,观察redis占用内存的变化,结果是变化不大。另外,根据redis的几个内存相关参数看到redis内存碎片也正常。这个原因又被pass。
寻找占用内存过高的key
目标是想利用某些工具分析出redis里哪些key的值占用内存最多,并且按占用大小做倒序,根据key的业务值去排查是否正常。最后运维通过下面的工具拿到redis的大key,发现是系统设计的问题,有很多大key已经不再使用,但是并没有在redis里删除,引起了这个问题。最终通过删除相关的key把redis内存降低到6.5G左右。
获取redis大key的方法详见:https://yq.aliyun.com/articles/117042
相关文章推荐
- 正确理解Linux内存占用过高的问题
- 手游内存占用过高?如何快速定位手游内存问题
- 使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题
- JceSecurity/BouncyCastleProvider导致JVM内存溢出、CPU过高问题排查
- 正确理解Linux内存占用过高的问题
- Linux内存占用过高的问题
- 正确理解Linux内存占用过高的问题
- 简单几步解决svchost占用内存过高问题
- 面向服务架构~本地轮训服务占用内存过高的问题
- java 一次CPU占用过高问题的排查及解决
- 64位Windows7系统中Svchost占用内存跟CPU过高的问题解决办法
- 3.cassandra遇到内存占用过高的问题
- Cache占用过多内存导致Linux系统内存不足问题排查
- Cache占用过多内存导致Linux系统内存不足问题排查
- dllhost.exe占用内存过高的问题
- 解决oracle服务占用内存过高的问题
- java高cpu占用和高内存占用问题排查 (转)
- JAVA CPU占用过高问题排查(linux)
- 正确理解Linux内存占用过高的问题
- MSSQL 服务器中 进程sqlservr.exe占用内存过高的问题