成为赞助商——支持中文 Agent 生态

了解赞助
库Agent场景库
← 返回用例列表

云主机 OOM Killer 日志分诊与处置草稿

进程突然没了时,先从内核 OOM 日志判断是全局内存、cgroup 还是节点不足,再生成升配/限流/清理草稿。

场景说明

独立开发者单机部署常见「进程消失」:用 Agent 解析 dmesg/消息日志里的 oom-killer 段,对照阿里云 Linux 文档的原因类型,输出只读分诊与建议;不自动重启或改 cgroup。

案例叙事

01他们做了什么

云主机上服务「突然退出」时,很多人先怪业务代码,其实内核可能已经 OOM Killer 杀过进程。做法是:先在 `/var/log/messages` 或 `dmesg` 里定位 `oom-killer`、`killed as a result of limit`、`Mem-Info` 等片段,把完整段贴给 Agent。

Agent 按阿里云 Linux《出现 OOM Killer 的原因及解决方案》公开分类来归类——子/父 cgroup 触顶、实例全局内存不足、NUMA 节点内存不足、伙伴系统碎片导致分配失败等——并在答复里引用日志原句(例如 `limit of /mm_test` 对 cgroup,`limit of host` 对主机/节点)。输出只含「只读结论 + 建议命令草稿」;升配、改 `memory.limit_in_bytes`、执行 `compact_memory` 一律等人确认后再做。这与通用「部署日志摘要」不同,专门咬住 OOM Killer 语义。

02实际效果

  • 源未披露量化「OOM 复发下降百分比」;公开文只描述 OOM Killer 的常见原因类型与处理思路。
  • 进程消失事件从盲目重启,收成「类型归类 + 日志依据 + 待确认处置」。
  • 能区分 cgroup 限死与整机内存不足,减少升错规格或乱改业务的概率。

03值得知道

  • 日志被轮转或未开持久化时可能找不到 OOM 现场,需先解决日志留存。
  • Agent 不能替代内核排查;NUMA/碎片场景仍需在机器上核 `buddyinfo` 等。
  • 上面写的是阿里云帮助文档公开的原因与方案说明,不是云厂商的 SLA 或自动修复承诺。

04可复制提示词

OOM 日志归类

你是 Linux OOM 分诊助手。只根据提供的内核日志归类,不要编造未出现的进程名。

日志片段:
{{oom_log}}
实例备注(可空:容器/裸进程/规格):{{host_notes}}

输出:
1. 是否确认为 OOM Killer(是/否/证据不足)。
2. 类型:cgroup / 父 cgroup / 全局内存 / 内存节点 / 碎片化 / 无法判断。
3. 依据:引用日志中的关键原句(含 limit of … 或 Mem-Info 要点)。
4. 被杀进程候选(日志中出现的名字/ PID)。
5. 下一步只读检查清单(最多 5 条)。
禁止:声称已重启服务;禁止给出破坏性删盘命令。

处置草稿待确认

基于已确认的 OOM 类型写处置草稿,所有动作默认「待人工确认」。

类型:{{oom_type}}
关键日志要点:{{oom_points}}
业务约束:{{constraints}}

输出分栏:
- 立即可做的只读核对
- 可能的配置调整(cgroup limit / 升配 / 内存整理)及风险
- 不应在未备份时做的事
每条命令用伪代码或完整命令均可,但必须标注「未执行」。

05一手来源

怎么做

  1. 在实例上检索 oom-killer / killed process 相关内核日志片段
  2. Agent 对照「cgroup / 父 cgroup / 全局 / 内存节点 / 碎片」类型做归类与依据引用
  3. 输出处置草稿(清理、调 limit、升配、整理内存),执行前人工确认

实用提示

  • 同时保存 OOM 时刻前后的 free -h 与 top 快照,避免只凭一段日志误判
  • 容器场景先确认是容器 cgroup 限死还是整机内存打满,再决定升配对象
#OOM#ECS#内核日志#cgroup#分诊