在 Linux 下查看进程内存占用,常用方法如下,按使用场景从简单到专业排列:
top
找到目标进程,关注这些列:
按 Shift + M 可按内存排序。
htop
ps -p <PID> -o pid,comm,rss,vsz
示例:
ps -p 1234 -o pid,comm,rss,vsz
查看所有进程按内存排序:
ps aux --sort=-rss
cat /proc/<PID>/status
重点字段:
VmRSS: 123456 kB # 实际物理内存
VmSize: 234567 kB # 虚拟内存
VmSwap: 0 kB # 使用的 swap
查看内存分布细节(堆、栈、共享库等)
cat /proc/<PID>/smaps
统计 RSS 总和:
grep Rss /proc/<PID>/smaps | awk '{sum+=$2} END {print sum " kB"}'
pmap -x <PID>
可以看到每个内存段的占用。
smem -p -c pid,name,usr,swap,uss,pss,rss
jstat -gc <PID>、jmapdocker stats
kubectl top pod
如果你有具体场景(比如:Java 进程、容器、内存泄漏、OOM),可以告诉我,我可以给你更针对性的命令和分析方法。