多数の発信クライアント接続を有効にするために、さまざまなTCP設定を調整しようとしています。 Ubuntu 16.04の/etc/sysctl.confに次のものを入れました。
net.ipv4.ip_local_port_range = 18000 65535 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 3
これを適用しsysctl -p
、netcatを使用してサーバーの1つに新しい接続を作成して終了しました。
nc 35.158.221.XXX 22
その後、次のようにnetstatを確認しました。
netstat -on | grep TIME_WAIT | less
それぞれの場合、3秒以内に接続が正しく削除されます。
今質問は次のとおりです。
上記の直後に出てくるhttp接続を生成する多くのスレッドを含むPythonスクリプトを起動しました。ただし、このスクリプトでは、接続のTIME_WAITステータスはデフォルトの60秒後に期限切れになります。
なぜこれが起こり、Pythonの接続はカーネル設定を無視するのですか?これがどのように可能ですか?この設定がこのプロセスに適用されないのはなぜですか?キャッシュのようなものを更新するのを忘れましたか?