linux查看每个进程内存大小
  以下是 Linux 系统中查看每个进程内存占用情况的常用方法,涵盖命令行工具和系统级工具,按使用频率和实用性排序:
一、使用 top 命令(实时动态监控)
核心作用:实时查看系统资源使用情况,按需排序进程。
操作步骤:
运行命令:
top1按内存排序:在交互界面中按下
Shift + M,进程将按 %MEM(内存占比) 降序排列。关键字段解析: • %MEM:进程占用物理内存的百分比。
• RES:实际使用的物理内存量(单位 KB 或 MB)。
• VIRT:进程使用的虚拟内存总量(包括共享库和未使用的内存)。
适用场景:快速定位高内存消耗的进程,适合动态监控。
二、使用 ps 命令(静态快照)
核心作用:生成当前进程的快照,按内存占用排序。
操作命令:
ps aux --sort=-%mem | head -n 10  # 按内存占比降序,显示前10条
 • 字段解析:
• RSS(Resident Set Size):进程占用的物理内存大小(单位 KB)。
• VSZ(Virtual Memory Size):进程使用的虚拟内存总量。
• 扩展用法:
• 查看单个进程内存(如 PID=1234):
```bash
ps -p 1234 -o pid,comm,%mem,rss,vsz
```
适用场景:生成静态报告,适合脚本化分析或导出数据。
三、使用 htop 工具(增强交互界面)
核心作用:提供彩色界面和更友好的交互操作。
操作步骤:
- 安装(如未预装):
sudo apt install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL1
2 - 运行后默认按 CPU 排序,点击 
F6→ 选择MEM%→ 按内存排序。 
优势:支持鼠标操作、树状视图显示父子进程关系,适合直观分析。
四、使用 pmap 命令(详细内存映射)
核心作用:查看进程的详细内存映射信息。
操作命令:
pmap -x 1234  # 查看 PID=1234 的进程内存分布
 • 输出解析:
• Kbytes:内存区域总大小。
• RSS:实际使用的物理内存。
• Mapping:内存用途(如共享库、堆栈)。
适用场景:深度分析进程内存分布,排查内存泄漏或异常占用。
五、通过 /proc 文件系统(底层信息)
核心作用:直接读取内核提供的进程信息文件。
操作命令:
cat /proc/1234/status | grep -E 'VmRSS|VmSize'  # 查看 PID=1234 的物理和虚拟内存
 • 字段说明:
• VmRSS:实际使用的物理内存(单位 KB)。
• VmSize:虚拟内存总量。
适用场景:编程或脚本中获取精确内存数据,无需依赖外部工具。
六、其他工具补充
smem:统计共享内存的占用(需安装):smem -p -k # 以百分比和 KB 单位显示进程内存1vmstat:查看系统整体内存状态(侧重全局,非单进程)。
总结对比
| 工具 | 优势 | 适用场景 | 引用来源 | 
|---|---|---|---|
top |  实时动态排序,交互操作 | 快速定位高内存进程 | |
ps |  静态快照,脚本友好 | 生成报告或批量处理 | |
htop |  图形化界面,父子进程可视化 | 交互式分析 | |
pmap |  详细内存映射,支持调试 | 排查内存泄漏或异常分配 | |
/proc 文件 |  底层数据,编程友好 | 脚本或开发中获取精确信息 | 
推荐流程:
- 先用 
top或htop快速定位问题进程。 - 通过 
ps生成详细报告。 - 需要深度分析时使用 
pmap或/proc。