RSS 项总数远大于 Solaris 中的物理内存 + 交换空间

RSS 项总数远大于 Solaris 中的物理内存 + 交换空间

rss所有活动进程(状态为S或)的值的总和是否O会远大于总物理内存 + 交换?

物理记忆是指prtdiag | grep Memory

而交换大小,我参考了的结果swap -l

答案1

容易地。

进程之间共享的物理内存(无论是 IPCS 共享内存还是mmap()共享对象使用的部分物理内存)都将计入将该内存映射到其地址空间的每个进程的 RSS 中。当计算内存使用量的起点是枚举进程时,没有简单的方法可以解决这个问题 - 您必须对每个进程的所有虚拟页面进行虚拟到物理的映射,然后消除重复项,同时希望在计算总数时检查的内存映射不会发生变化。

一个很好的例子是具有大型 SGA 的 Oracle 数据库服务器 - 它是在 Solaris 上使用 IPCS 共享内存实现的。如果 20 个进程映射 32 GB 共享内存 SGA,那么即使只使用了 32 GB 的 RAM,也会为进程的 RSS 总和贡献 640 GB。

相关内容