如何减少 OpenBSD 上 TIME_WAIT 连接的超时时间?

如何减少 OpenBSD 上 TIME_WAIT 连接的超时时间?

我正在 OpenBSD 5.2 上运行http_load,以测试我的设置有多好nginx,并且我注意到冷运行比热运行快得多,并且每次运行性能都会急剧下降(例如,从冷运行时每秒 3735 个回复,到后续运行中的 2288、1804、1553)。

我注意到netstat -n | wc -l运行后有几千个连接http_load,其中大多数都(state)TIME_WAIT

看起来好像set timeout tcp.finwait 8可以将pf.conf某些超时值从 45 秒减少到 8 秒,但是它似乎根本不会影响这些 TIME_WAIT 连接,这些连接netstat -n从创建到通过http_load/仍然会停留 60 秒nginx

有没有办法让这些 TIME_WAIT 连接比 60 秒更早过期?

答案1

您可以使用以下 sysctl 变量:

/etc/sysctl.conf

net.inet.tcp.keepinittime = 150
net.inet.tcp.keepidle = 14400
net.inet.tcp.keepintvl = 150

相关内容