以下是我的当前设置:
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 仍然低于限制。