過去問ドリル

LinuCレベル3 プラットフォームスペシャリスト プラットフォームの最適化 問15

プラットフォームの最適化/カーネルパラメータによるリソース最適化

カーネルパラメータvm.min_free_kbytesの役割として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの最適化」に対応。実際の試験問題ではありません)

正解:D

解説

vm.min_free_kbytes は、カーネルがゾーンの空きメモリとして維持しようとする最低量(キロバイト単位)を設定します。この値からカーネルはゾーンごとの low/min ウォーターマークを計算し、空きメモリがこれらを下回ると kswapd がページの回収(ページキャッシュの解放やダーティページの書き出し)を開始します。割り込みハンドラや緊急のメモリ確保のために最低限の空きを保証するために使います。値を小さくしすぎると実メモリ確保に失敗するリスクが増し、大きくしすぎると使えるメモリが減ります。

選択肢ごとの解説

  • A誤り。vm.min_free_kbytes は仮想マシンへの割り当て制限ではなく、ホストカーネル自身が維持しようとする最低空きメモリ量です。
  • B誤り。プロセスのスタックサイズは ulimit で制御し、OOM キラーの対象優先度は /proc/<PID>/oom_score_adj で調整します。vm.min_free_kbytes とは無関係です。
  • C誤り。スワップへの書き出し傾向は vm.swappiness で調整します。vm.min_free_kbytes はスワップ開始の直接的な閾値ではなく、ゾーンのウォーターマーク計算に使われるパラメータです。
  • D正しい。vm.min_free_kbytes はカーネルが維持しようとする最低空きメモリ量で、この値から low/min ウォーターマークが計算され、下回ると積極的なページ回収が行われます。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く