我们有两台配置和使用相同的机器(我们有两台平衡的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的Resident Set Size内存之和应该等于或大于此值。根据{{3}},为进程分配了多少内存并且在RAM中(包括来自共享库的内存)。我们在SWAP中没有任何记忆。
然而:
机器1:
ps aux | awk 'BEGIN {sum=0} {sum +=$6} END {print sum/1024}'
8357.08
8357.08< 14249 - > NOK!
机器2:
ps aux | awk 'BEGIN {sum=0} {sum +=$6} END {print sum/1024}'
8468.63
8468.63> 8264 - >行
我出错了什么?我怎样才能找到这个"缺失的地方"记忆是什么?
提前谢谢