系统参数调优解决大量出现TIME_WAIT
2012-11-19 11:48 Joeyyyy 阅读(362) 评论(0) 收藏 举报性能测试中,有时在测试一些高性能场景中,会出现大量的TIME_WAIT,并因此导致各种问题,如端口不够分配,sys cpu升高等等.
如果这个问题是出现在待测server上,则我们要谨慎的对待,因为任何系统参数的修改,除非确认安全并同时应用到生产服务器,否则是不能随意修改然后测试的, 这样可能会将问题掩盖,导致生产环境出现性能风险.
但是这次我遇到的有点不一样,我的测试场景中,是通过一个自己开发的集成了被测应用client代码的server来调用被测应用,我把它叫做cis server(client integrated server), 这个server上出现了TIME_WAIT过多,我可以随意的修改系统参数,只要解决问题就好.
以下是我的receipt:
1).网上有很多文章提到了
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
我建议不要使用,在一些情况下会导致包的错误,因此通过
net.ipv4.tcp_timestamps = 0
这样上面两个参数就不会生效了.
要解决TIME_WAIT,只需要修改1个参数:
net.ipv4.tcp_max_tw_buckets = 5000 #不确认在哪个linux kernel版本以上可以使用
改完执行sysctl -p
之后执行测试,然后检查netstat -tun|grep TIME_WAIT|wc -l
太棒了,TIME_WAIT再也没有超过5000.
浙公网安备 33010602011771号