4TB 机器上的 Redhat 7.6:无法使用超过 1TB

4TB 机器上的 Redhat 7.6:无法使用超过 1TB

我们有一台 4-CPU/72 核、4TB 内存的机器,运行 Redhat 7.6。

/proc/cmdline显示:

BOOT_IMAGE=/vmlinuz-3.10.0-957.5.1.el7.x86_64 ... ro crashkernel=auto rd.lvm.lv=vg00/lswap nomodeset rhgb quiet LANG=en_US.UTF-8

运行作业时,我们无法在这台机器上分配超过 1TB 的内存。我已经能够通过使用分配内存来重现这一点stress-ng。例如现在的状态是:

              total        used        free      shared  buff/cache   available
Mem:           3.9T        279G        2.2T         34G        1.4T        3.6T
Swap:          127G        849M        127G

当我尝试使用stress-ng 分配内存以使用超过 1TB 的内存时,我遇到了失败。这个命令工作正常:

stress-ng -m 60 --vm-bytes 700G -t 180s

我看到内存最大约为 980GB。但如果我分配更多一点,就会出现 mmap 失败。

stress-ng -m 60 --vm-bytes 800G -t 180s
stress-ng: info:  [90100] dispatching hogs: 60 vm
stress-ng: error: [90457] stress-ng-vm: gave up trying to mmap, no available memory

并且free显示使用量最高达到 1TB。我们的使用量从未超过 1TB。

是否有内核配置或其他我们应该考虑的因素可能将用户内存限制为 1.0TB?随着时间的推移,该buff/cache值增长到 3.0T 并且永远不会被释放,大概是因为内核不允许用户进程浸入该井中。

相关内容