cgroups v1 のメモリリソースコントローラでは、memory.limit_in_bytes
ファイルを使用して特定のcgroupのメモリ使用量に制限を設定できます。この制限に達したときのLinuxカーネルの動作は何ですか?
特に:
oom_score
が考慮されますか、それとも、制限に達する原因となったメモリを要求したプロセスが強制終了されますか?デフォルトでは、OOMはcgroupを監視しています。
memory.oom_control
cgroupのメモリ不足キラーを有効または無効にするフラグ(0または1)が含まれています。有効(0)の場合、許可されているよりも多くのメモリを消費しようとするタスクは、OOMキラーによって即座に強制終了されます。 OOMキラーは、メモリサブシステムを使用するすべてのcgroupでデフォルトで有効になっています。無効にするには、memory.oom_controlファイルに1を書き込みます。
~]# echo 1 > /cgroup/memory/lab1/memory.oom_control
OOMキラーが無効になっている場合、許可されているよりも多くのメモリを使用しようとするタスクは、追加のメモリが解放されるまで一時停止されます。