Linux RSS和共享内存

时间:2012-07-11 07:59:43

标签: linux memory shared ps

我有一个用RHEL 4机器运行的C编写的守护进程。

守护程序访问一段共享内存(只​​不过是65536个元素的大数组)。没有malloc /免费。

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

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

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

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

为什么它只是提升RSS来访问共享内存?

1 个答案:

答案 0 :(得分:0)

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

Linux使用demand paging,以便物理内存仅在第一次访问时映射。 VSZ是虚拟内存,可根据需要获得物理内存支持。这解释了为什么在访问更多共享内存映射时RSS会增长。