插件窝 干货文章 linux中rss是什么意思

linux中rss是什么意思

内存 进程 RSS 占用 490    来源:    2025-04-29

在 Linux 系统中,RSS(Resident Set Size) 是一个关键的内存指标,用于表示一个进程当前实际占用物理内存的大小(单位通常是 KB 或 MB)。以下是详细解释:


RSS 的核心概念

  1. 物理内存占用
    RSS 统计的是进程驻留在物理内存中的部分,不包括被交换到磁盘(Swap)的内存。它是进程正在使用的、未被换出的实际内存量。

  2. 包含内容

    • 进程的代码段(text)、堆(heap)、栈(stack)等。
    • 共享库的内存占用(但共享库可能被多个进程共用,因此直接累加 RSS 会导致统计偏大)。
  3. 与 VSZ 的区别

    • VSZ(Virtual Memory Size):进程申请的虚拟内存总量(包括物理内存 + Swap + 未实际分配的部分)。
    • RSS:仅统计实际驻留物理内存的部分(RSS ≤ VSZ)。

查看 RSS 的方法

  1. 通过 tophtop 命令

    • top 的输出中,RES 列即表示 RSS。
    • M 可按内存使用排序。
  2. 通过 ps 命令

    ps -o pid,rss,comm -p <PID>
    

    输出示例:

     PID   RSS COMMAND
    1234  1024 nginx
    
  3. 通过 /proc 文件系统

    cat /proc/<PID>/status | grep Rss
    

    输出会显示 RSS 的详细值(单位为 KB)。


RSS 的注意事项

  1. 共享库的重复计算
    多个进程共享的动态库会被计入各自的 RSS,因此所有进程的 RSS 总和可能超过系统实际物理内存。更精确的内存统计需参考 PSS(Proportional Set Size)(在 /proc/<PID>/smaps 中查看)。

  2. 内存泄漏分析
    如果 RSS 持续增长且不释放,可能是内存泄漏的信号。

  3. 容器环境中的差异
    在 Docker/Kubernetes 中,RSS 可能包含容器内所有进程的内存占用,需结合 cgroup 统计(如 memory.usage_in_bytes)综合判断。


扩展知识

  • USS(Unique Set Size):进程独占的物理内存(不包含共享库)。
  • PSS(Proportional Set Size):将共享库内存按进程数均摊后的内存值(更反映真实占用)。
  • Cache/Buffer:Linux 会利用空闲内存作磁盘缓存,这部分不计入进程 RSS。

通过 RSS 可以快速判断进程的实际内存占用,但在分析系统整体内存时,建议结合 free -mvmstat 等工具综合评估。