使用可能なメモリ量(vm.min_free_kbytes)が少なすぎるとどうなりますか?

使用可能なメモリ量(vm.min_free_kbytes)が少なすぎるとどうなりますか?

カーネル設定(sysctl)で次のパラメータが見つかりました。

vm.min_free_kbytes

これは、何があっても常に使用できる空きメモリ(RAM)の量です。私の場合、RAMは1GiBしかなく、このパラメータは約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.

デフォルトでは、低い値に設定するとメモリ割り当ての問題が発生します。

関連情報