【redis故障处理】redis omm问题
【1】常规问题
【1.1】omm问题
OOM command not allowed when used memory > 'maxmemory'.
分析
(1)查看服务器内存是否满了
(2)查看 redis内存是否爆满/溢出
(3)大key排查 / 客户端输入、输出区缓冲排查
实践查看:
(1)free
(2)查看 redis内存是否爆满/溢出
登录后:info memory
查找 used_memory 和 maxmemory
human 后缀表示已转换成适合人类阅读的文本
我们看到此时内存最大使用限制为 190M,而已使用了 257Mhuman 后缀表示已转换成适合人类阅读的文本
used_memory:270098024 used_memory_human:257.59M ... maxmemory:200000000 maxmemory_human:190.73M
(3.1)大KEY排查
redis-cli --bigkeys -h xxx.xxx.xxx.xxx -p 6379
转换成 human可读:237535676 /1024 /1024 = 226MB
由此可见,是大key 引起的
(3.2)客户端缓冲区排查
相关参考:https://www.cnblogs.com/gered/p/13280709.html
登录后:info clients
127.0.0.1:6379> info clients # Clients connected_clients:1891 client_recent_max_input_buffer:225698 #最大输入缓冲区队列 client_recent_max_output_buffer:0 blocked_clients:0
这里 最大输入缓冲区队列已经到了22W多,很明显不正常
我们通过 client list 命令找到对应的详细信息,这里我们从上面的 connected_clients 可以发现连接有近1900个。
所以我们要筛选排除正常的,比如 omem 不为0的(为什么用这个过滤条件?因为大部分客户端处理速度都很快基本 omem为0 )
于是我们执行 redis-cli -a 123456 client list |grep -v "omem=0" 把=0 的正常的链接给过滤掉,显示不正常的链接
id=7 addr=10.20.50.34:44139 fd=10 name= age=11482883 idle=1 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=224869 omem=2129300608 events=r cmd=monitor id=267861 addr=127.0.0.1:44140 fd=8 name= age=120 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 obl=0 oll=0 omem=0 events=r cmd=client
最终我们可以看到,第一行操作,正在进行 monitor 所以占用了大量输入缓冲队列。
client kill 10.20.50.34:44139
分类:
redis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2019-07-13 【转】MySQL Utilities,mysql工具包
2018-07-13 (3.6)sql server存储引擎--文件与数据页及数据行的结构
2018-07-13 (3.5)sql server存储引擎--事务日志与数据文件
2018-07-13 (3.4)存储引擎--内存
2018-07-13 (3.3)存储引擎--数据读写