商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Linux怎么查看内存占用

Linux怎么查看内存占用

  发布于2026-06-20 阅读(0)

扫一扫,手机访问

要聊 Linux 内存,得先纠正一个非常普遍的误解:很多人习惯直接看 `free -h` 的 `free` 那一列,以为那个数值低了就是内存不够。其实不然。真正代表系统“还剩多少可用内存”的,是 `a vailable` 这一列。 这才是判断内存是否紧张的核心指标。 先说几个关键判断:`free` 值低,根本不需要紧张,因为 Linux 会自动把空闲内存拿去做缓存(buffers/cache),这部分内存随时可以还给应用。真正危险的信号,反而是 `SwapUsed` 持续增长,以及 `a vailable` 长期低于总内存的 10%。

Linux怎么查看内存占用

### 为什么不能只看 free 列? 听上去有点反直觉,对不对?我们来拆开看看。 `free -h` 输出里,`free` 那一列代表的是“完全没被任何东西占用的冷内存”,这个值在日常稳定运行的服务器上几乎不可能高——因为系统总得用点空间做文件缓存、磁盘预读什么的。`buff/cache` 高,反而是健康的表现,说明系统没有浪费闲置资源。 而 `a vailable` 这个值,是内核估算出的、能立刻分配给新程序的实际可用量。它考虑到了可以回收的缓存,所以比 `free` 大得多,也更贴近真实情况。 经验表明,只要 `a vailable` 大于总内存的 10%,系统基本不会因为内存不足而出现性能问题。真正需要留意的组合信号是:`a vailable` 低,同时 `SwapUsed > 0` 且持续增长。后者意味着物理内存已经撑不住了,系统开始频繁换页,这比单看 `free` 危险得多。 ### 怎么快速定位吃内存的进程? 回到实际排查场景。用 `ps` 做静态快照,速度快,适合脚本或一次性抓取。 - 按实际物理内存(`RSS`)降序:`ps aux --sort=-rss | head -n 10` - 按内存占比(`%MEM`)降序:`ps aux --sort=-%mem | head -n 10` - 只看某个用户的进程,比如 `www-data`:`ps -u www-data -o pid,comm,%mem,rss --sort=-rss` 这里有个容易踩的坑:`RSS`(等同于 `RES`)才是进程真正占用的物理内存,而 `VSZ`(或 `VIRT`)包含了 mmap 映射、swap 空间之类的东西,数值虚高是常有的事,别被它吓到。 ### 想实时观察并交互操作,用 htop 而不是 top 虽然 `htop` 不是默认安装的,但值得花半分钟装上:`sudo apt install htop`(Debian/Ubuntu)或 `sudo yum install htop`(RHEL/CentOS)。 它比 `top` 好用在哪?几个关键点: - 彩色高亮 + 鼠标支持,一眼就能看出哪些进程是内存大户 - 按 `F6` 键,选 `MEM%`,直接按内存占比排序 - 按 `t` 键切换到树状视图,能看清父子进程关系——比如一个主进程拉起一堆 worker,这在 `top` 里很难一眼发现 - 按 `Shift+K` 可以隐藏内核线程,减少干扰 当然,`top` 也能按 `Shift+M` 按内存排序,但不支持鼠标、无法横向滚动长命令名、没有树状模式。排查多线程服务时,`htop` 的优势非常明显。 ### `/proc//status` 里藏着最细粒度的内存真相 当 `ps` 或 `htop` 显示的 `RSS` 和你的预期对不上时——比如进程看上去很“胖”但 RSS 又不高——就该深入查它的真实内存构成。 直接读这个文件:`/proc/1234/status`(把 1234 换成实际 PID)。 - 看常驻物理内存:`grep VmRSS /proc/1234/status`(输出如 `VmRSS: 1845236 kB`) - 看虚拟内存总量:`grep VmSize /proc/1234/status` - 看堆和栈的占用:`grep VmData`(堆)、`grep VmStk`(栈),有助于判断是否用了大量共享内存 这里的数据和 `ps` 的 `RSS` 基本一致,但更为权威——因为 `ps` 本质上也是读这个文件。如果两者差异大,说明进程刚 fork 或内存映射状态不稳定,此时应以此文件为准。 总结一下:`a vailable` 和 `SwapUsed` 的组合信号,决定了系统层面是否健康;`ps` 和 `htop` 帮你定位具体是哪个进程在“吃”内存;而 `/proc//status` 则用来深挖那个进程的内存到底是怎么用的。这三者缺一不可,配合使用才能把 Linux 内存问题看透。
本文转载于:https://www.php.cn/faq/2678272.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注