我正在 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