【问题标题】:Linux RSS and Shared MemoryLinux RSS 和共享内存
【发布时间】:2012-07-11 07:59:42
【问题描述】:

我有一个用 C 语言编写的守护程序,在 RHEL 4 机器下运行。

守护进程访问一段共享内存(只​​不过是一个包含 65536 个元素的大数组)。没有 malloc/free 完成。

我观察到 ps aux 表明该守护进程的大小为共享内存 + 一些 kb 作为 VSZ,只有一些 kb 作为 RSS。

然后,守护进程访问共享内存数组的次数越多,RSS 增加的次数就越多,直到达到大约相同大小的 VSZ。

为什么 Linux 以这种方式计算 RSS?

我的意思是...共享内存不应该因为单个进程消耗的内存 (RSS) 而被忽略,因为它可以被许多其他可运行程序访问?

为什么它会引发 RSS 只是访问共享内存?

【问题讨论】:

    标签: linux memory shared ps


    【解决方案1】:

    RSS 是映射到您的进程的物理内存量。

    Linux 使用demand paging,因此物理内存只在第一次访问时被映射。 VSZ 是由物理内存按需提供支持的虚拟内存。这就解释了为什么您的 RSS 会随着您访问更多共享内存映射而增长。

    【讨论】:

      猜你喜欢
      • 2011-02-18
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 2012-09-08
      相关资源
      最近更新 更多