これまでにvm.swappiness
設定すると、0
RAMが完全にいっぱいになったときにのみシステムが交換されるという意味でした。
$ cat /etc/sysctl.d/99-sysctl.conf
kernel.sysrq = 1
vm.swappiness=0
$ sysctl vm.swappiness
vm.swappiness = 0
ただし、最近この設定を使用すると、スワッピングが消去されてから数秒後でもスワッピングが可能になりますsudo swapoff -a; sudo swapon -a
。たとえば、数時間後
$ free -m
total used free shared buff/cache available
Mem: 32047 7914 325 1509 23807 22177
Swap: 1974 1974 0
したがって、22177MiBがありますavailable
。からman free
:
書くことができる
スワップなしで新しいアプリケーションを起動するために使用できるメモリ量を見積もります。
しかし、私のシステムは1974MiBのスワップスペースを使用し、遅くなるなど、まだ多くのスワップを実行しています。
vm.swappiness
に設定してみましたが、1
同様の結果が出ました。また、最新のLTS 4.19.17-1、4.19.16-1-lts、4.19.15-1-lts、その他多くのLTSバージョンとメインライン4.18.16.arch1-1を含むさまざまなカーネルを試してみました。方法 不要なシステム交換を防止しますか?
確かに最新バージョンのカーネルでこれを設定すると、vm.swappiness = 0
「利用可能なページとファイルサポートページの数がお住まいの地域の最高水位表示より少なくなるまでスワップを開始しない」という意味です。この「ハイウォーターマーク」とは何かはわからないけど、空きメモリーがたくさんあります!その他ページ提案OOMキラーこれが発生すると呼び出されます(交換自体ではありません)。 RAMなしでスワップをブロックし、OOMシャットダウンが発生するのを防ぎますか(RAMとスワップの両方がいっぱいになっていない場合)。