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

use*_*570 3 solaris solaris-10

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

通过物理内存,我指的是结果prtdiag | grep Memory

还有交换大小,我参考的是结果swap -l

And*_*nle 5

容易地。

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

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