linux查看每个进程内存大小
以下是 Linux 系统中查看每个进程内存占用情况的常用方法,涵盖命令行工具和系统级工具,按使用频率和实用性排序:
一、使用 top
命令(实时动态监控)
核心作用:实时查看系统资源使用情况,按需排序进程。
操作步骤:
运行命令:
top
1按内存排序:在交互界面中按下
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/RHEL
1
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
。