Dod*_*ddy 12 linux virtual-memory linux-kernel
我一直在使用 研究 Linux 中的内存过度使用/proc/sys/vm/overcommit_memory
,并且我阅读了几篇文章,但它们并没有说同样的话。
该文档在“走错方向”标题下继续说,“值 1:过度使用,0(默认):不要”,但在接下来的几行中,它提到了类似的事情,这实际上不是真的,0 意味着“猜测有多少过度承诺是合理的”。这意味着使用值 0不会禁用内存过量使用,对吗?
它还表示 1 表示“从不拒绝任何 malloc()”,2 表示“对过度使用要准确——永远不要提交大于交换空间加上物理内存的一部分 overcommit_ratio 的虚拟地址空间。”
另一方面,Red Hat 杂志指出,“如果值为 0,则内核检查以确定是否有足够的可用内存来授予来自应用程序的 malloc 调用的内存请求。如果有足够的内存,则请求被批准。否则,它被拒绝并向应用程序返回错误代码。” 这听起来就像禁用过度使用。
“如果该值设置为 1,则内核授予超过系统中物理 RAM 和交换量的分配,如 overcommit_ratio 值所定义......如果此文件中的设置为 2,则内核允许所有内存分配,无论当前的内存分配状态如何。” 就值 1 和 2 而言,这与之前的文档所说的相反,对吗?
有谁知道什么是真正正确的,以及是否可以“禁用”过度使用?
Red Hat 杂志将 1 和 2 颠倒了。当心可能会阻止禁用过度使用的错误:https : //bugs.launchpad.net/ubuntu/+source/glibc/+bug/345601
归档时间: |
|
查看次数: |
8663 次 |
最近记录: |