加载中...

OOM Killer(Out-Of-Memory Killer)是 Linux 内核在系统内存耗尽、且无法通过回收缓存等手段满足分配请求时,主动选择并杀死进程以释放内存的机制。
内核为每个进程计算 oom_score,主要依据其内存占用量,占用越多越可能被选中;可通过 /proc/<pid>/oom_score_adj(取值 -1000 到 1000)调整倾向,设为 -1000 可完全豁免。cgroup v2 的 memory 控制器支持组内 OOM,把影响限制在容器范围内。
Linux 默认允许内存过量提交(overcommit),进程申请的虚拟内存可能超过物理内存与交换空间之和,真正写入时才可能发现无页可用,OOM Killer 即为此兜底。
被杀进程会在内核日志中留下记录(dmesg 中的 "Out of memory" 条目)。生产环境常配合 memory cgroup 限额、swap 策略与用户态 earlyoom 等工具,避免关键服务被误杀。

登录 后参与讨论
暂无讨论,来发表第一条评论吧