overcommit_memory 和 overcommit_ratio

overcommit_memory 和 overcommit_ratio

以下是我的当前设置:

vm.overcommit_ratio = 50 (default)
vm.overcommit_memory = 2

当前内存使用情况:

[localhost~]$ free -g
             total       used       free     shared    buffers     cached
Mem:            47         46          0          0          0         45
-/+ buffers/cache:          1         45
Swap:           47          0         47

根据文档我的理解是:

vm.overcommit_memory = 2不允许过度使用内存超过 50% 的 RAM (as vm.overcommit_ratio is 50),但我仍然可以看到当前内存使用量为 47 GB 中的 46 GB。

我是不是误解了什么?

答案1

来自您的文档链接:

2 — 内核无法满足以下内存请求:所有交换空间加上物理 RAM 的百分比在 /proc/sys/vm/overcommit_ratio 中指定

在您的情况下,您有 47gB RAM、47gB 交换,并且 overcommit_ratio 为 50,因此使用的总内存可以增加到 47+47*.5=70.5gB。

您当前使用的内存为 46gB(RAM)和 0gB(交换空间),因此总共 46gB 仍然低于限制。

相关内容