在 Linux 系统中,RSS(Resident Set Size) 是一个关键的内存指标,用于表示一个进程当前实际占用物理内存的大小(单位通常是 KB 或 MB)。以下是详细解释:
物理内存占用
RSS 统计的是进程驻留在物理内存中的部分,不包括被交换到磁盘(Swap)的内存。它是进程正在使用的、未被换出的实际内存量。
包含内容
与 VSZ 的区别
通过 top
或 htop
命令
top
的输出中,RES
列即表示 RSS。M
可按内存使用排序。通过 ps
命令
ps -o pid,rss,comm -p <PID>
输出示例:
PID RSS COMMAND
1234 1024 nginx
通过 /proc
文件系统
cat /proc/<PID>/status | grep Rss
输出会显示 RSS 的详细值(单位为 KB)。
共享库的重复计算
多个进程共享的动态库会被计入各自的 RSS,因此所有进程的 RSS 总和可能超过系统实际物理内存。更精确的内存统计需参考 PSS(Proportional Set Size)(在 /proc/<PID>/smaps
中查看)。
内存泄漏分析
如果 RSS 持续增长且不释放,可能是内存泄漏的信号。
容器环境中的差异
在 Docker/Kubernetes 中,RSS 可能包含容器内所有进程的内存占用,需结合 cgroup
统计(如 memory.usage_in_bytes
)综合判断。
通过 RSS 可以快速判断进程的实际内存占用,但在分析系统整体内存时,建议结合 free -m
、vmstat
等工具综合评估。