实战一:内存硬限制与 OOM Killer(终极整合版)

📅 2026/7/24 18:29:10
实战一:内存硬限制与 OOM Killer(终极整合版)
文章目录实战一:内存硬限制与 OOM Killer(终极整合版)一、实验拓扑与参数说明二、一键启动 Redis(启用 DEBUG 命令)三、验证环境就绪四、监控窗口(开 2 个终端)终端 1:实时监控内存终端 2:实时监控 OOM 日志五、内存压测(三种方案任选其一)✅ 方案一:DEBUG POPULATE(最推荐,最快)✅ 方案二:Lua 脚本(兼容性最好,无需 DEBUG)✅ 方案三:redis-benchmark(最接近真实流量)六、验证 OOM Killer 生效1️⃣ 容器状态2️⃣ 确认 OOM 标志3️⃣ 内核日志证据七、关键原理解析(面试常问)Q1:为什么 Redis 配置了 `maxmemory 80mb`,却吃了 150MB?Q2:为什么是 Exit Code 137?Q3:Swap 在这里起什么作用?八、生产环境最佳实践配置九、故障排查速查表十、扩展实验(进阶)实验 A:禁止 Swap(更严格)实验 B:关闭 OOM Killer(观察卡死)十一、一键自动化脚本(复制即用)✅ 总结一句话实战一:内存硬限制与 OOM Killer(终极整合版)镜像:redis:7.2-alpine核心原理:Cgroup 内存限制 + Redis 主动申请内存 → 触发内核 OOM Killer适用场景:理解容器内存限制、OOM 机制、Redis 内存溢出行为一、实验拓扑与参数说明参数值说明物理内存上限100M-m 100mSwap 上限50M--memory-swap 150m总虚拟内存150M物理 + SwapRedis maxmemory80M预留系统开销OOM Killer启用