背景
事故现场
Text
根因定位
- docker inspect 取出容器记录的 PID
- ps -p <PID> 验证 → 进程不存在,容器实际已死
- dmesg | grep -i oom → 找到三天前的 OOM Killer 记录:内核杀掉了容器主进程,但 dockerd 状态未同步
恢复与加固
- docker restart 恢复服务(数据在 volume 中,无损失)
- docker update --memory 1g --memory-swap 2g 给容器加内存硬上限
- 效果:以后即使内存泄漏,cgroup OOM 只会重启容器,不会拖垮整台服务器
关于 Agent 运维的思考
- 只读操作放开,写操作确认——Agent 的排查效率远超人工翻文档,但破坏性命令必须有确认环节
- 非交互是前提——密钥免密、sudo -n、BatchMode=yes,Agent 无法输入密码
- 让 Agent 复述证据链——每个结论都要求给出命令输出佐证,避免"看起来对"的幻觉判断