tcp関連の/proc パラメータ復習
/proc/sys/net/ipv4/ 以下のアレ。高負荷時にはチューニングすると良いらしいけど、これを設定して効果が出るような状況にはまだ出くわしたことない。
tcp_fin_timeout
default: 60 (秒)
tcpのシーケンスでFIN-WAIT2からTIME_WAIT に移行するまでの待ち時間。TIME_WAITが残っている時間ではない。TIME_WAIT 自体の時間はkernelをrebuildしないとダメ?
tcp_max_tw_buckets
TIME_WAIT 状態を保持する上限数
tcp_tw_reuse
default: 0
TIME_WAITを自分からの接続で再利用する。1でよさげ
tcp_tw_recycle
default: 0
TIME_WAITを相手からの接続で再利用する
これを有効にすると同一IPからのパケットが同時に来た時に、timestampの古いほうのパケットを破棄してしまうのでNAT環境 (サーバ側だけじゃなくて、クライアント側も) だと影響あるので使わないほうが良い。 閉じたネットワーク内で、かつTIME_WAITを再利用したい場合にのみ使うと良い?
tcp_max_syn_backlog
default: 1024 ?
クライアントからのACK(3way ハンドシェイクの最後) を受け取っていない接続リクエストのキューの保持数。これを超えるとkernelはリクエストを捨てる。/proc/sys/net/core/somaxconn も増やしたほうがいい??