Solaris prstat RSS 没有添加

Solaris prstat RSS 没有添加

因此,在 Solaris 10 10/09 区域上,我看到所有常驻内存都被用完了。在尝试找到分配所有物理内存的进程时,我注意到“prstat”给出的 RSS 总数与区域中使用的整个 RSS 总数不相等。

没有共享内存段,pmap -x 报告的使用率数字与 prstat 中各个进程的报告数字相同。

以下是一些命令输出。如您所见,添加排名靠前的进程的 RSS 远不及报告的总体 RSS(5063M)。

# prstat -n 20 -s rss -Z
PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
18481 nobody     14G 1457M cpu18   30    0   0:20:51 4.3% java/272
18970 nobody    435M  399M sleep   59    0   0:02:44 1.2% java/30
19083 nobody    371M  363M sleep   59    0   0:02:08 0.4% java/47
18803 nobody    330M  257M sleep   59    0   0:09:51  13% java/366
22260 nobody    410M  132M sleep   59    0   3:52:07 0.3% java/23
12430 daemon     81M   35M sleep   59    0   0:00:23 0.0% httpd/28
12429 daemon     87M   33M sleep   59    0   0:00:22 0.0% httpd/28
...
very low usage processes
....
ZONEID    NPROC  SWAP   RSS     MEMORY  TIME      CPU  ZONE
17        93    3197M   5063M   99%     24:57:19  27%  cygna

知道所有物理内存都到哪里去了吗?

答案1

居民共享重叠,或者:共享内存页面不是独占的。例如,如果多个进程将 libc 映射到其内存空间,那么这些将被共享(直到 COW 使它们不再共享)。 的输出pmap可能会有所帮助。

还可以参阅这个答案以获得一些见解,但请记住 Solaris 和 Linux 内存管理在一些细节上有所不同(最重要的是过度提交的方法):https://stackoverflow.com/questions/1612939/why-does-the-sun-jvm-continue-to-consume-ever-more-rss-memory-even-when-the-heap

相关内容