我怎样才能调整Linux内核参数以便套接字能够频繁地被回收?

我怎样才能调整Linux内核参数以便套接字能够频繁地被回收?

我在 Ubuntu10.10 上使用 Siege 2.6.9 做了一些负载测试,使用的脚本如下,
siege -c 900 -r 30 -i -f urls.txt但我收到了大量的错误消息,例如

error: socket: unable to connect sock.c:222: Operation already in progress or socket timeout

我注意到大多数请求的响应时间都少于 0.2 秒,但过了一段时间,一些请求的响应时间增加到 5 秒,并且周期性地出现暂停,
因此我做了一些 Linux 内核调优工作,例如

sysctl -w net.ipv4.tcp_tw_reuse=1  
sysctl -w net.ipv4.tcp_timestamps=1  
sysctl -w net.ipv4.tcp_tw_recycle=1  

之后情况有所好转,但还不够好,
所以你们能否给我更多关于
linux 内核参数上的套接字/tcp 参数调整的信息,例如回收/重用/关闭处于 TIME_WAIT 状态的套接字。
任何建议或意见都将不胜感激。非常感谢。

答案1

您可能想尝试降低 net.ipv4.tcp_fin_timeout,这会影响套接字在 TIME_WAIT 中停留的时间。60 已经相当低了;尝试一次降低 10,看看情况是否会有所改善。

 echo 50 >/proc/sys/net/ipv4/tcp_fin_timeout 

如果有效,将其添加到 sysctl.conf:

net.ipv4.tcp_fin_timeout = 50 # or whatever works best

请记住,虽然它有助于负载测试,但它不一定是实际使用中的良好默认设置。

  • 埃里克

相关内容