在 Linux 中查看进程内存使用情况有多种方式,下面按常用程度和场景给你总结一下,从简单到专业。
top
查看指定进程:
top -p PID
htop
安装:
# Ubuntu / Debian
sudo apt install htop
# CentOS / RHEL
sudo yum install htop
ps -p PID -o pid,vsz,rss,comm
示例:
ps -p 1234 -o pid,vsz,rss,comm
字段说明:
ps aux --sort=-rss | head
cat /proc/PID/status
重点关注:
VmRSS: 内存实际占用
VmSize: 虚拟内存
VmSwap: 使用的 swap
示例:
cat /proc/1234/status | grep Vm
pmap -x PID
输出示例:
Address Kbytes RSS Dirty Mode Mapping
适合分析:
⚠️ Linux 内存是共享的
更准确指标:
/proc/PID/smaps
查看 PSS(Proportional Set Size):
grep Pss /proc/PID/smaps | awk '{sum+=$2} END {print sum}'
✅ PSS 是判断进程真实内存占用的最佳指标
| 方法 | 适合场景 | 推荐指数 |
|---|---|---|
| top / htop | 实时查看 | ⭐⭐⭐⭐⭐ |
| ps | 脚本 / 快速查看 | ⭐⭐⭐⭐ |
| /proc/PID/status | 精确分析 | ⭐⭐⭐⭐⭐ |
| pmap | 内存分布 | ⭐⭐⭐⭐ |
| smaps + PSS | 内存泄漏 | ⭐⭐⭐⭐⭐ |
✅ RSS 和 VSZ 的区别?
✅ 为什么 top 看到的内存加起来 > 实际内存?
✅ 如何判断进程是否有内存泄漏?
如果你愿意,我可以: