尽管内存可用,但无法分配内存

问题描述

我们有一个由 LSF 管理的机器群,包括一些最近从 1.5TB 升级到 2.0TB 的机器。升级后,我们开始遇到以前没有遇到的内存分配失败。这些系统是双核 AMD Epyc 7F72,因此总共 48 个内核。他们运行 Centos 7.9,内核为 3.10.0-1160.el7.x86_64。 HT 被禁用。一个典型的作业会在单核上消耗 100GB-200GB 的内存。

我们看到的症状是,我们通常无法在 2.0TB 的总内存中分配超过 1.0TB 的内存。剩余的 1.0TB 似乎被缓存消耗了,但即使我删除缓存我们仍然无法访问它:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           2.0T        948G        208G         18M        846G        1.0T
Swap:            0B          0B          0B

$ stress-ng -m 10 --vm-bytes 300G -t 60s
stress-ng: info:  [15260] dispatching hogs: 10 vm
stress-ng: error: [15275] stress-ng-vm: gave up trying to mmap,no available memory
stress-ng: error: [15277] stress-ng-vm: gave up trying to mmap,no available memory
stress-ng: error: [15276] stress-ng-vm: gave up trying to mmap,no available memory

[root]# sync; echo 3 > /proc/sys/vm/drop_caches
[root]# free -h
              total        used        free      shared  buff/cache   available
Mem:           2.0T        953G        1.0T         18M        6.8G        1.0T
Swap:            0B          0B          0B

$ stress-ng -m 10 --vm-bytes 300G -t 60s
stress-ng: info:  [15972] dispatching hogs: 10 vm
stress-ng: error: [15987] stress-ng-vm: gave up trying to mmap,no available memory
stress-ng: error: [15986] stress-ng-vm: gave up trying to mmap,no available memory
stress-ng: error: [15988] stress-ng-vm: gave up trying to mmap,no available memory

是否需要做一些特殊的事情来访问可用的全部内存?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...