内存占用高怎么查真实原因
Linux系统 2026-09-26 05:47 5

缓存也算进 used 是最常见的误判,先分清可用内存再动手。命令都会敲,差别在于知不知道每一步在改什么,出问题能不能退回去。

下面按“先判断范围、再处理、最后防复发”的顺序展开,涉及 内存占用高、free 的关键动作都给了具体做法,可以照着走。

free -h 看 available

available 接近 0 才是真紧张。

拿不准的时候先做备份再做变更,成本最低。

按进程排序

top 里按 M 排序,看 RSS 而不是 VIRT。

容易踩的坑:最容易出问题的是细节不一致:版本、路径、参数任意一处对不上,现象就和预期差很远。

缓存可回收

buff/cache 高属正常,必要时 echo 3 清缓存验证。

同一时间只改一项,改完立刻验证,出问题也好定位。

持续增长才是泄漏

隔十分钟采两次数据对比,稳定上涨再查代码。

速查表

环节关键动作
free -h 看 availableavailable 接近 0 才是真紧张
按进程排序top 里按 M 排序,看 RSS 而不是 VIRT
缓存可回收buff/cache 高属正常,必要时 echo 3 清缓存验证
持续增长才是泄漏隔十分钟采两次数据对比,稳定上涨再查代码

常见问题

Q:内存占用高这类问题,最快的判断办法是什么?
先确认现象的范围:只有单台还是全部、只在某个时段还是持续。范围一缩小,原因基本就浮出来了。

Q:按文中的步骤做完,还需要注意什么?
把处理过程和最终生效的参数记下来。同类问题再出现时直接对照记录,比重查一遍快得多。

小结

回到这篇的四个环节:free -h 看 available、按进程排序、缓存可回收、持续增长才是泄漏。以上步骤按顺序做完,同类故障基本能自己处理。留一份操作记录,下次能省一半时间。

相关阅读:inode 用满了怎么办、磁盘满了怎么排查和清理。

Powered by ©智简魔方