在 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)。通过理解这两个指标,可以更精准地分析进程的内存使用情况,从而进行性能调优或问题排查。