LinuCレベル3 プラットフォームスペシャリスト プラットフォームの最適化 問2
プラットフォームの最適化/カーネルパラメータによるリソース最適化カーネルパラメータvm.overcommit_memoryに設定する値0・1・2の違いに関する説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの最適化」に対応。実際の試験問題ではありません)
- A0はオーバーコミットを完全に禁止し、1は推測による判定、2は物理メモリの範囲に収まる要求のみを許可する
- B0はカーネルの推測による判定、1は要求をほぼ無条件に許可、2はCommitLimitを超える要求を拒否する
- C値が大きいほど制限が緩くなり、2ではスワップを含む合計容量を無視してすべての要求が許可される
- Dどの値でもオーバーコミットの可否は変わらず、上限を超えた際に記録されるログの詳細さだけが変わる
正解:B
解説
vm.overcommit_memoryは、0がカーネルによる推測にもとづく判定(既定値)、1が要求をほぼ無条件に許可、2がCommitLimit(スワップ+物理メモリのovercommit_ratio分)を超える要求を拒否する、という3つの方針を切り替えるパラメータです。値の大小が制限の強さの順に並んでいるわけではない点に注意が必要です。
選択肢ごとの解説
- A誤り。オーバーコミットを抑制するのは2で、0はカーネルの推測による判定です。0が完全禁止という対応ではありません。
- B正しい。0は推測による判定、1はほぼ無条件の許可、2はCommitLimitを超える要求の拒否を意味します。
- C誤り。値が大きいほど緩くなるわけではなく、2はCommitLimitによってむしろ厳しく制限する設定です。
- D誤り。値によってメモリ割り当て要求の可否そのものが変わるパラメータであり、ログの詳細さを決めるものではありません。