Linux系统下如何查看某个进程的内存使用情况
文章标签:
Linux 查文件
在Linux系统中,查看进程及其内存使用情况可以通过多种命令实现。以下是详细的方法说明:
一、查看当前系统中的进程
最常用的命令是 ps 和 top(或 htop,更友好的交互式版本)。
- ps 命令
用于静态查看当前进程快照,常用参数组合:
# 查看系统中所有进程(包含完整命令行)
ps aux
# 按内存占用排序(降序)
ps aux --sort=-%mem
# 按CPU占用排序(降序)
ps aux --sort=-%cpu
输出字段说明:
- PID:进程ID(用于后续操作)
- USER:进程所属用户
- %CPU:CPU使用率
- %MEM:物理内存使用率
- VSZ:虚拟内存大小(单位:KB)
- RSS:实际使用的物理内存大小(单位:KB)
- COMMAND:进程对应的命令
- top 命令
动态查看进程状态(实时更新),默认按CPU使用率排序:
top
常用操作:
- 按 M:切换到按内存使用率排序
- 按 P:切换到按CPU使用率排序
- 按 q:退出
二、查看特定进程的虚拟内存和物理内存
已知目标进程的 PID 后(可通过上述 ps 或 top 获取),有以下几种方法:
方法1:ps命令直接筛选
# 替换 <PID> 为目标进程的ID
ps -p <PID> -o %mem,rss,vsize,cmd
输出字段说明:
- VSZ(Vsize):进程申请的虚拟内存总量(包括未使用的部分),单位KB。
- RSS(Resident Set Size):进程实际占用的物理内存大小,单位KB(仅包含已加载到物理内存的部分)。
方法2:cat /proc/<PID>/status(最详细)
/proc 目录是内核提供的虚拟文件系统,包含所有进程的实时信息:
# 替换 <PID> 为目标进程的ID
cat /proc/<PID>/status
重点关注以下字段:
- VmSize:虚拟内存总量(单位:KB),对应 VSZ。
- VmRSS:物理内存使用量(单位:KB),对应 RSS。
- VmSwap:进程使用的交换分区大小(单位:KB)。
示例输出片段:
Name: python3
Pid: 12345
VmSize: 1048576 kB # 虚拟内存总量
VmRSS: 51200 kB # 物理内存使用量
VmSwap: 2048 kB # 交换分区使用量
方法3:pmap命令(查看内存映射详情)
用于查看进程的内存映射情况,包括虚拟内存的分配细节:
# 替换 <PID> 为目标进程的ID
pmap -x <PID>
输出中:
- Address:虚拟内存地址
- Kbytes:该内存区域的大小(KB)
- RSS:该区域实际使用的物理内存(KB)
- Mode:内存权限(读/写/执行)
- Mapping:内存映射的文件或匿名内存
最后一行的 total 即为该进程的总虚拟内存和物理内存使用量。
总结
- 查看所有进程:用 ps aux(静态)或 top(动态)。
- 查看特定进程的内存:
- 快速查看:ps -p <PID> -o vsize,rss
- 详细信息:cat /proc/<PID>/status(推荐)
- 内存映射详情:pmap -x <PID>
通过这些命令,可以全面了解进程的内存使用状态,包括虚拟内存(VSZ/VmSize)和物理内存(RSS/VmRSS)。