核心是RSS(Resident Set Size)或/proc/<PID>/status中的VmRSS,表示进程实际驻留物理内存(KB),不含swap和重复共享库;常用ps -p PID -o pid,comm,%mem,rss或ps -eo pid,comm,%mem,rss --sort=-rss查看。

Linux中查看进程占用的物理内存,核心是关注实际驻留在 RAM 中的那部分内存,即 RSS(Resident Set Size) 或 /proc/<PID>/status 中的 VmRSS。它不包含已交换出去的部分,也不含共享库的重复计算(部分工具会做去重),是最贴近“这个进程真正吃掉多少物理内存”的指标。
以下几种方法按使用频率和实用性排序,覆盖日常排查、脚本调用和深度分析场景:
直接看 RSS 值(最常用、最可靠)
RSS 是衡量物理内存占用的关键数值,单位为 KB。
推荐用 ps 一次性获取:
ps -eo pid,comm,%mem,rss --sort=-rss | head -n 10
-
rss列就是物理内存占用(KB) -
--sort=-rss按 RSS 从高到低排序 -
head -n 10只看前 10 名
想查某个具体进程(比如 PID 是 1234):
ps -p 1234 -o pid,comm,%mem,rss
输出示例:
PID COMMAND %MEM RSS 1234 nginx: master 1.2 125678
说明该进程占用了约 125678 KB ≈ 122.7 MB 物理内存。
实时监控:top 或 htop(适合快速定位)
运行
top,按 M(大写)键,按%MEM降序排列
关注RES列(等同于 RSS,单位 KB)和%MEM(占系统总物理内存百分比)-
更推荐
htop(需安装):sudo apt install htop # Ubuntu/Debian sudo yum install htop # CentOS/RHEL
启动后按 F6 → 选
MEM%→ 回车,即可按内存占比排序;支持鼠标、颜色、树状视图,体验更直观。
Browser Setup (No-Root Linux)下载在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
查看详细内存构成:/proc//status 和 smaps
对某个进程(如 PID=1234)深入分析时,直接读内核暴露的接口最准确:
grep VmRSS /proc/1234/status
输出类似:
VmRSS: 125678 kB
若要看更细粒度(如堆、栈、共享库各自占多少):
cat /proc/1234/smaps | awk '/^Size:/ {sum+=$2} /^Rss:/ {rss+=$2} END {print "Total Size: " sum/1024 " MB, RSS: " rss/1024 " MB"}'smaps 还能帮你识别是否因内存泄漏导致 Rss 持续增长,或发现大量 Anonymous 页面(典型堆内存)。
批量筛选 + 单位换算(运维脚本友好)
常需把 KB 转成 MB/GB 更易读。例如查看 Java 进程并转 MB:
ps aux | grep java | grep -v grep | awk '{printf "%-8s %-10s %6.1f MB %s
", $2, $11, $6/1024, $NF}'或用 watch 持续观察某进程 RSS 变化:
watch -n 1 'ps -p 1234 -o pid,rss,%mem,cmd --no-headers | awk "{printf "RSS: %.1f MB\n", $2/1024}"'不复杂但容易忽略:RSS 是瞬时快照,不代表长期稳定值;多线程进程的 RSS 是所有线程共享内存的总和(未去重),而 smem 工具可做 PSS(Proportional Set Size)估算更公平的独占内存,如需精确分摊可另装 smem。

















