| 场景 | 进程神秘消失/系统卡顿后恢复 |
|---|---|
| 目标 | 确认是否 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.serviceOOM 只是结果:根因通常是应用内存泄漏、堆上限配置过大或缓存失控;持续观察 RSS 曲线再下结论。