首页/系统/Linux 运维命令速查/场景:OOM Killer 杀进程排查
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条
日志与排查40 条
systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

场景:OOM Killer 杀进程排查

服务凌晨被杀、SSH 时断时续:dmesg/journal 里的 OOM 记录会给出被杀进程与内存全景,按证据调整而不是瞎加内存。

Linux 运维命令速查系统更新于 2026-10-12
场景进程神秘消失/系统卡顿后恢复
目标确认是否 OOM 与谁在吃内存
工具链dmesg → journalctl → free/ps

第 1 步:找 OOM 记录

第 1 步:找 OOM 记录
dmesg -T | grep -i -E 'killed process|out of memory|oom-kill' | tail -n 30
journalctl -k --since '2 days ago' | grep -i oom | tail -n 30

第 2 步:还原内存现场

第 2 步:还原内存现场
free -h
echo '--- top mem ---'
ps aux --sort=-rss | head -n 15
cat /proc/meminfo | head -n 5

第 3 步:处置

第 3 步:处置
# 给关键服务加保护(示例:systemd 单元)
# [Service]
# MemoryMin=512M  或调整应用堆上限
systemctl show -p MemoryMax myapp.service
OOM 只是结果:根因通常是应用内存泄漏、堆上限配置过大或缓存失控;持续观察 RSS 曲线再下结论。

易错点

  • OOM 记录里被杀进程常是受害者(占内存最大)而非元凶(突发泄漏者),要看全量列表与时间线
  • 容器内部署时 OOM 可能由 cgroup 限制触发(dmesg 里的 memory cgroup out of memory),要查容器内存限制

数据来源与参考

  • 内核文档 admin-guide/mm/oom(OOM Killer)
  • man 5 proc(/proc/meminfo)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌