Linux RSS 和共享内存

标签 linux memory shared ps

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

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

我观察到ps aux显示守护进程具有共享内存的大小+一些kb作为VSZ和一些kb作为RSS。

然后,守护进程访问共享内存阵列越多,RSS 增加得越多,直到达到大约与 VSZ 相同的大小。

Linux为什么要这样计算RSS?

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

为什么它会在访问共享内存时引发 RSS?

最佳答案

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

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

关于Linux RSS 和共享内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11428115/

相关文章:

linux - 将文件名添加到多个文件的每列顶部(制表符分隔)

java - 由于在 EC2 实例上使用了所有内存,MongoDB 性能变慢

java - 如何用 .so 文件打包所有需要的库 linux

unix - * nix系统范围的线程和进程互斥体

linux - 如何使用CMake更新库路径?

linux - SED:插入一个带有特殊字符的字符串

linux - 获取具有最新日期名称的文件夹

linux - 在 Samsung Artik 710 开发模块中添加 LED 支持

java - 如何使用 Apache POI 加载大型 xlsx 文件?

android - 巨大的内存( native 堆)增加设置布局