许多内核参数都分配了默认值。但其中一些并不是很清楚。我正在阅读proc 手册,在这种情况下,admin_reserve_kbytes
我们可以阅读以下内容:
此文件中的默认值是 [3% of free pages, 8MiB] 的最小值,以 KiB 表示。
还有其他类似的默认值,那么这是什么意思呢?
许多内核参数都分配了默认值。但其中一些并不是很清楚。我正在阅读proc 手册,在这种情况下,admin_reserve_kbytes
我们可以阅读以下内容:
此文件中的默认值是 [3% of free pages, 8MiB] 的最小值,以 KiB 表示。
还有其他类似的默认值,那么这是什么意思呢?
在内核启动期间的某个时间——当 MM 子系统被初始化时——它计算出剩余可用内存的 3%。如果大于 8MiB,则该值设置为 8MiB。因此,我们说该值设置为两者中的最小值。这是一次性初始化;它永远不会重新计算。
https://elixir.bootlin.com/linux/v5.0/source/mm/mmap.c#L3666
sysctl 的值是一个数字。它不是字节数;它是一个数字“KiB”。1 KiB 是 1024 字节。它是最接近 1000 的数字,即 2 的方便幂。RAM 芯片内置 2 的幂。(此外,我们可以使用快速二进制移位运算来乘或除 2 的幂)。