我在 FreeBSD 机器(DNS 服务器)上执行了“netstat -an”。
然后屏幕显示数百个“TIME_WAIT”连接。
为了减少socket等待的次数,调整系统值:
net.inet.tcp.msl
到更短的时间。
默认情况下,TIME_WAIT 状态连接将必须等待至少 60 秒(如果没有来自目标的回复可以终止此连接)才能终止连接。
该值基于 RFC 793.
但问题是RFC是在1981年起草的。
恕我直言,那个时候的设备和带宽没有现在那么快。
这意味着 60 秒的等待,不够长的时间。
计算 (net.inet.tcp.msl)的秒数值的公式是 net.inet.tcp.msl 的值乘以 2 倍。
这意味着 net.inet.tcp.msl 的值为 30000 意味着 60000 毫秒(因为 2x30000),因此是 60 秒。
要将 net.inet.tcp.msl 设置为 15 秒,请将 net.inet.tcp.msl 的值更改为 7500。
例如
sysctl net.inet.tcp.msl=7500
这将导致 TIME_WAIT 套接字在等待 15 秒后终止,如果没有来自目标的回复可以终止此连接。
日期:2020-06-02 22:18:39 来源:oir作者:oir