空きメモリの量 (vm.min_free_kbytes) が低すぎるとどうなりますか?

空きメモリの量 (vm.min_free_kbytes) が低すぎるとどうなりますか?

カーネル設定 (sysctl 内) で次のパラメータを見つけました。

vm.min_free_kbytes

これは、何があっても常に空いている空きメモリ (RAM) の量です。私の場合、RAM は 1 GiB しかなく、このパラメータは約 64MiB に設定されていました。これはかなり高いと思ったので、これまでは 8MiB に下げていました。これ以上下げられるかどうか、または 8MiB に下げると問題が発生するかどうかはわかりません。質問は、空きメモリの量が少なすぎるとどうなるかということです。値を 1MiB に下げても安全ですか?

答え1

安全であるはずですが、保証はできません。カーネルのドキュメントより:

min_free_kbytes:

This is used to force the Linux VM to keep a minimum number
of kilobytes free.  The VM uses this number to compute a
watermark[WMARK_MIN] value for each lowmem zone in the system.
Each lowmem zone gets a number of reserved free pages based
proportionally on its size.

Some minimal amount of memory is needed to satisfy PF_MEMALLOC
allocations; if you set this to lower than 1024KB, your system will
become subtly broken, and prone to deadlock under high loads.

Setting this too high will OOM your machine instantly.

基本的に、これを低く設定すると、メモリの割り当てに問題が発生します。

関連情報