RLOSE Linux 常见问题 · 排障备忘 · 背景知识

OOM Killer 是怎么选中牺牲进程的

2026-06-02 · 背景知识

物理内存(以及可回收的页面)紧张到一定程度,内核会触发 Out-Of-Memory Killer,挑一个进程杀掉,好让系统继续跑。表象往往是某服务「突然没了」,不一定留下应用自己的错误日志。

怎么确认是被 OOM 杀的

dmesg -T | grep -i -E 'killed process|out of memory'
journalctl -k -b | grep -i oom

日志里通常有 Killed process 和进程名、分数(oom_score)相关信息。

大致怎么挑牺牲品

内核会给进程算 oom_score(还可看 /proc/<pid>/oom_score)。占用内存多的更容易被选;也可用 oom_score_adj(-1000~1000)调整倾向。设为 -1000 近似「不要杀我」(仍要谨慎,滥用可能导致整机更难恢复)。

旁边该看的

治本仍是控制内存用量;OOM Killer 只是最后一道「保机器」的手段。

← 返回目录