(1)vm.overcommit_memory
执行grep -i commit /proc/meminfo
看到CommitLimit和Committed_As参数。
CommitLimit是一个内存分配上限,CommitLimit = 物理内存 *
overcommit_ratio(默认50,即50%) + swap大小
Committed_As是已经分配的内存大小。
--------
vm.overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2
0: (默认)表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。0
即是启发式的overcommitting handle,会尽量减少swap的使用,root可以分配比一般用户略多的内存
1:
表示内核允许分配所有的物理内存,而不管当前的内存状态如何,允许超过CommitLimit,直至内存用完为止。
2: 表示不允许超过CommitLimit值
(2)vm.overcommit_ratio
默认值为:50 (即50%)
这个参数值只有在vm.overcommit_memory=2的情况下,这个参数才会生效。
时间: 2025-01-01 09:35:09