過去問ドリル

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

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

カーネルパラメータnet.ipv4.tcp_rmemに設定する3つの値(最小・デフォルト・最大)のうち、「最大」値の意味として適切なものはどれか。

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

正解:B

解説

tcp_rmemの3番目の値(最大)は、TCPの自動チューニング(auto-tuning)によって動的に拡張される受信ソケットバッファの上限サイズを指定する。カーネルはネットワーク状況に応じてバッファを最小値と最大値の間で動的に調整する。

選択肢ごとの解説

  • A誤り。TCPウィンドウサイズのネゴシエーションはtcp_rmemの最大値が影響するが、直接相手にアドバタイズする値として設定するものではなく、カーネルの自動チューニングが計算に使う上限値である。
  • B正しい。tcp_rmemの最大値(3番目の値)はTCP自動チューニングが受信ソケットバッファを拡張できる上限で、カーネルがネットワーク状況に応じてバッファを最小値と最大値の間で動的に調整する
  • C誤り。アプリケーションのsetsockopt()でSO_RCVBUFが設定できる上限を制御するのはnet.core.rmem_maxで、net.ipv4.tcp_rmemの最大値とは別の設定。
  • D誤り。TIME_WAIT状態のソケットのバッファを保証する機能はtcp_rmemの役割ではない。tcp_rmemの最小値は、メモリプレッシャー下でも確保が保証されるバッファサイズを指す。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く