温馨提示×

linux进程内存如何查看

小樊
81
2026-08-20 13:34:32
栏目: 智能运维

在 Linux 中,查看进程内存使用情况有多种方式,下面按常用程度和场景给你总结。


一、最常用:top / htop(实时查看)

1️⃣ top

top

查看某个进程:

top -p <PID>

重点字段:

  • VIRT:虚拟内存(包含共享库、映射文件)
  • RES:常驻内存(实际占用物理内存,最重要)
  • SHR:共享内存
  • %MEM:占用物理内存百分比

示例:

top -p 1234

2️⃣ htop(更直观,推荐)

htop
  • 支持颜色
  • 支持鼠标
  • 内存显示更清晰

安装:

sudo apt install htop        # Debian/Ubuntu
sudo yum install htop        # CentOS

二、精准查看:/proc//status(推荐)

cat /proc/<PID>/status

重点关注:

VmRSS:     内存实际占用(最常用)
VmSize:    虚拟内存
VmSwap:    使用的 swap

示例:

cat /proc/1234/status | grep Vm

输出示例:

VmSize:  123456 kB
VmRSS:    45678 kB
VmSwap:    1234 kB

✅ 这是最准确、最底层的方式


三、快速查看:ps

查看单个进程

ps -p <PID> -o pid,rss,vsz,cmd

字段说明:

  • RSS:物理内存(KB)
  • VSZ:虚拟内存(KB)

示例:

ps -p 1234 -o pid,rss,vsz,cmd

查看所有进程按内存排序

ps aux --sort=-rss | head

四、详细内存分布:pmap

pmap -x <PID>

可以看到:

  • 堆(heap)
  • 栈(stack)
  • 共享库
  • mmap 映射

示例:

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>

如果你愿意,可以告诉我:

  • 是 Java / C++ / Go / Python 进程?
  • 是想查 内存泄漏 还是 OOM 原因?

我可以给你更针对性的命令和分析方法。

0 踩