在 Linux 中,查看进程内存使用情况有多种方式,下面按常用程度和场景给你总结。
top
查看某个进程:
top -p <PID>
重点字段:
示例:
top -p 1234
htop
安装:
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # CentOS
cat /proc/<PID>/status
重点关注:
VmRSS: 内存实际占用(最常用)
VmSize: 虚拟内存
VmSwap: 使用的 swap
示例:
cat /proc/1234/status | grep Vm
输出示例:
VmSize: 123456 kB
VmRSS: 45678 kB
VmSwap: 1234 kB
✅ 这是最准确、最底层的方式
ps -p <PID> -o pid,rss,vsz,cmd
字段说明:
示例:
ps -p 1234 -o pid,rss,vsz,cmd
ps aux --sort=-rss | head
pmap -x <PID>
可以看到:
示例:
pmap -x 1234
| 名称 | 含义 |
|---|---|
| VIRT | 虚拟内存(包含共享库、文件映射) |
| RES (RSS) | 实际占用物理内存 |
| SHR | 共享内存 |
| Heap | 堆内存 |
| Stack | 栈内存 |
| Swap | 被换出的内存 |
常用组合:
watch -n 1 "cat /proc/<PID>/status | grep VmRSS"
如果 VmRSS 持续增长不回落 → 可能内存泄漏
| 场景 | 推荐命令 |
|---|---|
| 实时查看 | htop |
| 精确分析 | /proc/<PID>/status |
| 快速统计 | ps aux --sort=-rss |
| 内存分布 | pmap -x <PID> |
如果你愿意,可以告诉我:
我可以给你更针对性的命令和分析方法。