RSS 内存的总和(以 ps 为单位)小于实际使用的内存



我们有两台配置和用途相同的机器(其中有两个平衡的 Siebel 应用程序服务器(。

通常,我们的RAM使用率非常相似(约7 Gb(。 最近,我们仅在其中一台机器中突然增加了 RAM,现在我们在那台机器中的 RAM 利用率接近 14 Gb。

因此,对于非常相似的盒子,我们其中一个使用 7Gb RAM,而另一个消耗 14 Gb。

现在,使用ps aux命令来确定它正在使用所有这些额外内存的进程,我们看到两台机器的内存消耗非常相似。不知何故,我们没有看到任何使用7 Gb额外RAM的进程。

我看看: Machine 1: total used free shared buffers cached Mem: 15943 15739 204 0 221 1267 -/+ buffers/cache: 14249 1693 Swap: 8191 0 8191

因此,我们有 14249 Mb 的 RAM 使用率。

Machine 2: total used free shared buffers cached Mem: 15943 15636 306 0 962 6409 -/+ buffers/cache: 8264 7678 Swap: 8191 0 8191

因此,我们有 8264 Mb 的 RAM 使用率。

我想,ps 的驻留集大小内存的总和应该等于或大于这个值。根据这个答案,有多少内存分配给进程并且位于RAM中(包括来自共享库的内存(。我们在 SWAP 中没有任何内存。

然而:

机器 1:

ps aux | awk 'BEGIN {sum=0} {sum +=$6} END {print sum/1024}' 8357.08

8357.08 <14249 -> 挪威克朗!

机器 2:

ps aux | awk 'BEGIN {sum=0} {sum +=$6} END {print sum/1024}' 8468.63

8468.63> 8264 -> OK

我做错了什么?如何找到这个"丢失"的记忆在哪里?

提前谢谢你

如果它们两个是虚拟机,则"丢失"的内存可能被气球驱动程序占用,尤其是它们由VMware ESXi托管。

最近我遇到了类似的情况。所有进程 RSS 的总和为 14GB,命令free显示使用了 26GB,因此缺少 12GB 内存。

在互联网上搜索后,我按照这篇文章在我的虚拟机上执行命令vmware-toolbox-cmd stat balloon,控制台显示 12xxxMB(由气球使用(,宾果游戏!

相关内容

最新更新