是什么消耗了这台 Linux 机器中几乎所有的内存和交换空间?(与缓冲区/缓存无关)

是什么消耗了这台 Linux 机器中几乎所有的内存和交换空间?(与缓冲区/缓存无关)

我有一台 Linux 机器,它报告几乎所有内存和交换空间都在使用中,但我无法识别机器上任何使用大量内存的进程。我们正在运行 Linux 内核2.6.32-431.40.2.el6.x86_64,它是从 RHEL srpm 构建的,未经修改。这是一个物理系统(不是虚拟系统);一台配备两个 6 核 Intel X5650 CPU 的 Dell C6100。该系统已运行 12 天,以下是内存和交换空间的使用情况。

Mem:  49416180k total, 48890424k used,   525756k free,    18300k buffers
Swap: 12582908k total, 12582908k used,        0k free,   727252k cached

我运行了以下命令并收到以下输出,但这些输出似乎都没有表明机器上的任何进程正在消耗大量内存:

ps -eo pid,args,pmem --sort pmem 

这是ps该命令的完整输出在 Pastebin 上。

我也跑slabtop -ocat /proc/meminfo以下是这些命令的完整输出在 Pastebin 上也是如此。

我现在很困惑。如果有人知道可能发生了什么,或者想查看任何其他命令的输出,我会很高兴听到。

答案1

这个问题的根源原来是系统上运行的 Lustre 内核模块中的一个错误 (LU-5726)。每次从机器托管的 Lustre 文件系统中删除文件时,这都会导致内核泄漏内存。升级到 Lustre 2.5.4(其中已合并修复程序)解决了这个问题。

引用错误报告(这是别人的,不是我的):

描述:

删除大量文件时,MDS 服务器上的内存使用量会显著增加。尝试通过删除缓存来回收内存只能释放部分内存。缓冲区使用量会持续增长,直到 MDS 服务器最终开始 OOMing。

缓冲区使用率的增长速度似乎有所不同,但似乎可能取决于删除文件的客户端数量和删除文件的速度。

针对该补丁,有报道称:

我们今天刚刚将补丁应用到我们的生产文件系统 (Lustre 2.4.3),现在正在运行一些大规模清除。我收集了一些有关内存使用情况的信息。在补丁之前,内存增长似乎主要由 /proc/meminfo 中的“Inactive(file)”决定。我删除了 MDS 服务器中的缓存 (echo 3 > /proc/sys/vm/drop_caches),并每分钟收集一次 Inactive(file) 使用情况:

inactive(file): 1146656 kB ..... 这个数字最初迅速上升,但随后趋于平稳。为了再检查一下,我再次删除了缓存:

不活动(文件):401152 kB ....

我们得到了相同的行为,更重要的是,我们似乎正在从 Inactive(file) 中回收内存。我还在删除缓存之前/之后检查了 MemFree 和 Buffers:

(之前)MemTotal:66053640 kB MemFree:51291028 kB 缓冲区:10685976 kB

(之后)MemTotal:66053640 kB MemFree:63239432 kB 缓冲区:198148 kB

缓冲区使用量降至 200 MB 以下。考虑到我们清除的速度,在应用补丁之前绝不会发生这种情况。

我觉得这个补丁有 90% 的把握解决了问题。如果我们能在几天内以这个速度继续清除而不增加内存使用量,那么我认为我会 100% 有信心。

此外

今天早上我再次检查了 MDS 内存使用情况:

MemTotal:66053640 kB MemFree:5568288 kB 缓冲区:
55504980 kB 活动:22374284 kB 非活动:33260116 kB

删除缓存后:

MemTotal:66053640 kB MemFree:63146420 kB 缓冲区:
59788 kB 活动:57960 kB 非活动:93452 kB

看起来补丁已经成功。

https://jira.hpdd.intel.com/browse/LU-5726

答案2

从我在这里看到的是,这是 Linux 的磁盘缓存。您的内存很好,当进程需要它时,它就可以使用它。

更多相关信息请参见此处: http://www.linuxatemyram.com/

我唯一不太确定的是 SWAP 的使用情况。我从未在任何一台机器上看到过这么高的使用率。

erik@xenon ~] $ free -m total used free shared buffers cached Mem: 7883 7756 126 0 201 5702 -/+ buffers/cache: 1852 6030 Swap: 8068 11 8057

相关内容