【新機能】作り忘れたまとめはありませんか?31日前まで期間指定してまとめが作れる高度な検索ができました。有料APIだからツイートの漏れはありません!

Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味?

Web企業ではわりと広くTCP_TIMEWAIT_LENを書き換えて毎回カーネルをリコンパイルしてると聞いて調べてみた
プログラミング 運用 システム管理 TCP Linux
23857view 1コメント
39
ログインして広告を非表示にする
KOSAKI Motohiro @kosaki55tea 2015-09-09 00:03:14
. @sonots から日本のWeb界隈ではTCP_TIMEWAIT_LEN を変更してカーネルリコンパイルがデファクトという話を聞いて軽くぐぐってみたところ、たしかに大量にそのようなページがヒットする。しかもどれ一つとして理由が書いてない。そして日本特有の現象
KOSAKI Motohiro @kosaki55tea 2015-09-09 00:04:39
軽くソースを見た感じだと、tcp_tw_reuse をセットすると1秒で TIME_WAITのsocketは再利用が始まるので、いまひとつリコンパイルの必要性が分からず。これ、ソース呼んで妥当性チェックした人がいるノウハウなのかなあ
K.Namba/ご注文は910ですか? @ipv6labs 2015-09-09 00:05:30
@kosaki55tea @sonots なにそれ・・・ こういうのって、パラメータで調整するのでは? リコンパイルとか ちょっと後のこと考えてください(死
KOSAKI Motohiro @kosaki55tea 2015-09-09 00:09:06
カーネル論理としては、TIME_WAITにかぎらずTCPは紛失したと思ってたパケットがやってくるものである。だからシーケンスナンバーおかしいやつは捨てる。だからシーケンスナンバーの初期値を十分ずらしてやれば TIME-WAITなsocketを再利用しても安全
KOSAKI Motohiro @kosaki55tea 2015-09-09 00:10:14
というのがtw_reuseの考え方に見える。わたしネットワークは素人だから間違ってるかもしれないけど。それが正しいとすると、TIME-WAITを短くすることに拘る理由はあまりない。netstatの出力が綺麗になるかどうかだけの問題
そのっつ (Naotoshi Seo) @sonots 2015-09-09 00:12:49
@kosaki55tea え、ソケット開かれすぎて、time wait table がオーバーフローしてエラーになっちゃうとか書いてありません?namikawaさんの良い記事あった > d.hatena.ne.jp/rx7/touch/2013…
Emma Haruka Iwao@Seattle @Yuryu 2015-09-09 00:14:03
私もTIME_WAITを短くする理由はないと思います。同じIPに接続する場合はtw_reuseでポート再利用されるし、そうでない場合はきちんと待つべきだと思うので。 twitter.com/kosaki55tea/st…
Mitsuru SHIMAMURA @smbd 2015-09-09 00:14:41
@kosaki55tea d.hatena.ne.jp/rx7/20120329/p1 この辺を見ると、tcp_tw_reuse=1にしてもTIME_WAITが減らなかった、となっていますね
KOSAKI Motohiro @kosaki55tea 2015-09-09 00:14:47
@sonots あなたが言っている tcp wait tableとはなんのことだい?
INADA Naoki @methane 2015-09-09 00:16:06
@kosaki55tea むしろ tcp_tw_reuse を使えばいいから、 TCP_TIMEWAIT_LEN を設定不可能にしてますね。
KOSAKI Motohiro @kosaki55tea 2015-09-09 00:16:23
@smbd TIME_WAIT中のやつをreuseするオプションなので減らないのは当然で、その結果port不足が発生するかどうかが検証されてないように見えます。なんか間違ってる?
そのっつ (Naotoshi Seo) @sonots 2015-09-09 00:16:27
@kosaki55tea こういうエラーが出る認識です > Mar 29 18:08:02 hostname kernel: TCP: time wait bucket table overflow cf. d.hatena.ne.jp/rx7/touch/2012…
KOSAKI Motohiro @kosaki55tea 2015-09-09 00:16:47
@methane だよねえ。ソース見て同じ感想をもった。
INADA Naoki @methane 2015-09-09 00:16:54
@smbd @kosaki55tea TIME_WAIT なソケットを管理するコストすら気にする競技向けの設定なのかもしれないけど、ベンチマークは見た事無いですね。
KOSAKI Motohiro @kosaki55tea 2015-09-09 00:17:57
@sonots tcp_tw_reuseのところ、TIME_WAITが減らなかった、としか書いてなくて、検証になってないよ。
Mitsuru SHIMAMURA @smbd 2015-09-09 00:18:15
@kosaki55tea d.hatena.ne.jp/hirose31/20071… たしかに、こちらではtw_reuse=1にすると接続エラーにならないとなってますね
INADA Naoki @methane 2015-09-09 00:18:57
TIME_WAIT が本当に要らないと分かってる環境なら、 FIN じゃなくて RST を送れば TIME_WAIT なくせるという Tips
そのっつ (Naotoshi Seo) @sonots 2015-09-09 00:19:20
@kosaki55tea あー、この記事だと確かにそうですね。reuse ですから減らないですね。
ふりっぱぁ @fripper1214 2015-09-09 00:20:52
@kosaki55tea @smbd 空きがあるうちは普通に増えて、足りなくなって初めてreuseされる、だから、よほどの負荷を掛けた試験をしない限りはTIMEWAIT状態のものは減ったようには見えない…で認識良いですかね?
そのっつ (Naotoshi Seo) @sonots 2015-09-09 00:20:57
@methane それ、tcp flow が汚れて(汚れたように見えて)やなんですよねー。アプリケーションでの対応がいるし。
INADA Naoki @methane 2015-09-09 00:21:05
developerweb.net/viewtopic.php?… The TIME_WAIT state is there for a reason; it's your friend and it's there to help you :-)
KOSAKI Motohiro @kosaki55tea 2015-09-09 00:26:20
@fripper1214 @smbd じゃなくて、TIME_WAITのsocketのうち、reuseしても安全なものはreuseするというオプションなので減らす効果はまったくない。TIME_WAITのsocketが増えるとreuse条件に合致しやすくなるのでなかなか溢れないだけ
残りを読む(14)
ログインして広告を非表示にする
ログインして広告を非表示にする