過去問ドリル

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

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

カーネルパラメータ vm.dirty_expire_centisecs が 3000 に設定されている。この設定の意味として適切なものはどれか。

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

正解:D

解説

vm.dirty_expire_centisecs は、ダーティデータ(メモリ上で変更されたがディスクへ未反映のデータ)が、どれだけ古くなったらフラッシャースレッドによる書き出しの対象になるかを、1/100秒単位で指定します。3000は30秒を意味します。フラッシャースレッドが起床する間隔は別のパラメータ vm.dirty_writeback_centisecs(1/100秒単位)で指定します。値を小さくすると停電等で失われうるデータ量は減りますが、書き出しの回数が増えてI/Oの負荷は上がります。

選択肢ごとの解説

  • A誤り。書き込みを行うプロセスが待たされる閾値はvm.dirty_ratioやvm.dirty_bytesで指定し、単位もページ数ではありません。
  • B誤り。フラッシャースレッドの起床間隔はvm.dirty_writeback_centisecsで指定します。また単位は秒ではなく1/100秒です。
  • C誤り。メモリを空けるための回収では、ダーティページはディスクへ書き出してから解放されるもので、未反映のまま捨てて空きメモリを作ることはしません。単位もミリ秒ではありません。
  • D正しい。1/100秒単位で指定し、3000は30秒を超えたダーティデータを書き出しの対象にするという意味です。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く