LinuCレベル3 プラットフォームスペシャリスト プラットフォームの最適化 問14
プラットフォームの最適化/カーネルパラメータによるネットワーク最適化Linuxカーネルのネットワーク関連パラメータに関する説明として、正しいものをすべて選べ。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの最適化」に対応。実際の試験問題ではありません)
- Anet.core.rmem_maxは、アプリケーションがsetsockopt()のSO_RCVBUFで指定できる、ソケットの受信バッファサイズの上限である
- Bnet.ipv4.tcp_syn_retriesは、相手から受信したSYNに対して、SYN+ACKを再送する回数の上限を決めるパラメータである
- Cnet.core.netdev_max_backlogは、送信を待つパケットをNICごとに溜めておく送信キュー(txqueuelen)の長さを決めるパラメータである
- Dnet.ipv4.tcp_fin_timeoutは、アプリケーションが閉じて孤立した接続が、FIN_WAIT_2状態に留まる時間を決めるパラメータである
正解:A、D
解説
net.core.rmem_max(送信側はnet.core.wmem_max)は、アプリケーションがSO_RCVBUF(SO_SNDBUF)で要求できるバッファサイズの上限で、高帯域・高遅延の通信で大きなバッファを使うアプリケーションのために引き上げます。TCPの自動調整の範囲はnet.ipv4.tcp_rmem等で別に決まります。net.ipv4.tcp_fin_timeoutは、どのアプリケーションからも参照されなくなった接続がFIN_WAIT_2状態で相手のFINを待つ時間で、既定は60秒です。tcp_syn_retriesは自分から接続を開始するときのSYNの再送回数で、SYN+ACKの再送回数はtcp_synack_retriesが決めます。netdev_max_backlogは受信側のパラメータで、カーネルの処理より速くパケットが届いたときに溜めておく入力キューの上限です。
選択肢ごとの解説
- A正しい。net.core.rmem_maxは、SO_RCVBUFで指定できる受信バッファサイズの上限です。
- B誤り。tcp_syn_retriesは、自分から接続を開始するときにSYNを再送する回数です。受信したSYNへのSYN+ACKの再送回数はtcp_synack_retriesで決まります。
- C誤り。netdev_max_backlogは受信側のパラメータで、インターフェースがカーネルの処理より速くパケットを受信したときに溜めておく入力キューの上限です。送信キューの長さはインターフェースのtxqueuelenで設定します。
- D正しい。tcp_fin_timeoutは、孤立した接続がFIN_WAIT_2状態に留まる時間で、既定は60秒です。