gpt4 book ai didi

linux - ps 中的 RSS 内存总和小于实际使用的内存

转载 作者:行者123 更新时间:2023-12-05 07:41:16 24 4
gpt4 key购买 nike

我们有两台配置和用途相同的机器(我们有两台平衡的 Siebel 应用服务器)。

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

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

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

让我们看看:
机器 1:
缓存的已用空闲共享缓冲区总数
内存:15943 15739 204 0 221 1267
-/+ 缓冲区/缓存:14249 1693
交换:8191 0 8191

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


机器 2:
缓存的已用空闲共享缓冲区总数
内存:15943 15636 306 0 962 6409
-/+ 缓冲区/缓存:8264 7678
交换:8191 0 8191

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

我猜,ps的Resident Set Size内存之和应该等于或大于这个值。根据this answer是分配给进程并在 RAM 中的内存量(包括来自共享库的内存)。我们在 SWAP 中没有任何内存。

但是:

机器 1:


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

8357.08 < 14249 -> 不行!

机器 2:


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

8468.63 > 8264 -> 确定

我哪里错了?我怎样才能找到这个“丢失”的内存在哪里?

提前致谢

最佳答案

如果他们两个是虚拟机,可能“丢失”的内存被 Balloon 驱动程序占用了,尤其是它们由 VMware ESXi 托管。

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

在网上搜索后,我关注this article并在我的 VM 上执行命令 vmware-toolbox-cmd stat balloon,控制台显示 12xxxMB(被气球使用),BINGO!

关于linux - ps 中的 RSS 内存总和小于实际使用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45459319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com