TCPのセッションを「確立したまま」にする時間が
tcp_keepalive_time
であることを説明しましたが、
このtcp_keepalive_timeの時間(デフォルト2時間)が来ると どうなるかというと
tcp_keepalive_probes tcp_keepalive_intvl
という2つのパラメータの値が効いてきます。
tcp_keepalive_probesに指定したデフォルト9回の無通信のTCPセッションに対して 定期的に検査をします、その間隔はというとtcp_keepalive_intvlで指定した デフォルト75秒になります。
つまり最高で
9回x75秒=675秒(約11分)
経過し相手から反応が無ければ接続を切ります。
tcpのkeepalive関係をまとめると ┌───────────┬─────────────┐ │生存時間 │プローブ │ ├───────────┼─────────────┤ │tcp_keepalive_time │tcp_keepalive_probes(9回) │ │(2時間) │tcp_keepalive_intvl(75秒) │ └───────────┴─────────────┘
【変更する場合】 ●[再起動したら無効になる方法] # echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes # echo 2 > /proc/sys/net/ipv4/tcp_keepalive_intvl ●[再起動しても有効になる方法] # vi /etc/sysctl.conf
net.ipv4.tcp_keepalive_probes = 5 net.ipv4.tcp_keepalive_intvl = 2 を追記
# sysctl -w ←変更を反映 # sysctl -p ←確認
|