游乐游手机版
首页/系统平台/文章详情

Linux查看内存占用命令详解

时间:2026-06-22 11:14
Linux内存应关注`available`而非`free`,低于10%且`SwapUsed`持续增长才危险。定位进程用`ps`按`RSS`排序,实时监测推荐`htop`,细粒度分析查看` proc pid status`中的`VmRSS`等字段。
要聊 Linux 内存管理,先得纠正一个非常普遍的误解:很多人习惯直接看 `free -h` 的 `free` 那一列,以为那个数值低了就是内存不够。其实不然。真正代表系统“还剩多少可用内存”的,是 `available` 这一列。 这才是判断内存是否紧张的核心指标。 先说几个关键判断:`free` 值低,根本不需要紧张,因为 Linux 会自动把空闲内存拿去做缓存(buffers/cache),这部分内存随时可以还给应用。真正危险的信号,反而是 `SwapUsed` 持续增长,以及 `available` 长期低于总内存的 10%。

Linux怎么查看内存占用

### 为什么不能只看 free 列? 听上去有点反直觉,对不对?我们来拆开看看。 `free -h` 输出里,`free` 那一列代表的是“完全没被任何东西占用的冷内存”,这个值在日常稳定运行的服务器上几乎不可能高——因为系统总得用点空间做文件缓存、磁盘预读什么的。`buff/cache` 高,反而是健康的表现,说明系统没有浪费闲置资源。 而 `available` 这个值,是内核估算出的、能立刻分配给新程序的实际可用量。它考虑到了可以回收的缓存,所以比 `free` 大得多,也更贴近真实情况。 经验表明,只要 `available` 大于总内存的 10%,系统基本不会因为内存不足而出现性能问题。真正需要留意的组合信号是:`available` 低,同时 `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 或内存映射状态不稳定,此时应以此文件为准。 总结一下:`available` 和 `SwapUsed` 的组合信号,决定了系统层面是否健康;`ps` 和 `htop` 帮你定位具体是哪个进程在“吃”内存;而 `/proc//status` 则用来深挖那个进程的内存到底是怎么用的。这三者缺一不可,配合使用才能把 Linux 内存问题看透。
来源:https://www.php.cn/faq/2678272.html
上一篇如何在Mac电脑上将Numbers表格转换成PDF格式的详细步骤 下一篇银河麒麟系统下PDF文件加水印方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送