在 Linux 系统中,VSZ
(Virtual Set Size)和 RSS
(Resident Set Size)是描述进程内存使用的两个关键指标,它们的核心区别如下:
ps
/top
等命令查看时)。malloc(1GB)
申请了内存但未实际使用,这部分会计入 VSZ,但不会占用物理内存(不计入 RSS)。mmap
映射的文件若未被访问则不会计入。指标 | 统计范围 | 是否包含共享内存 | 是否包含未使用的内存 | 是否受 Swap 影响 |
---|---|---|---|---|
VSZ | 虚拟内存总量(含未映射部分) | 是(共享库重复统计) | 包含 | 不受影响 |
RSS | 物理内存占用(不含 Swap) | 是(共享库分摊统计) | 不包含 | 不受影响 |
ps
命令:
ps aux | grep <进程名>
VSZ
列显示虚拟内存大小(默认单位 KB)。RSS
列显示物理内存大小(默认单位 KB)。top
命令:
VIRT
列对应 VSZ。RES
列对应 RSS。smem
工具:可更精确统计共享内存分摊后的实际内存使用(USS/PSS/RSS
)。通过理解这两个指标,可以更精准地分析进程的内存使用情况,从而进行性能调优或问题排查。