- ss -s 发现timewait好高
- 如果自己的client,可以看看是调用外部的哪个服务太频繁了
1ss -t state time-wait |awk '{print $4}'|sort |uniq -c |sort -nr
- 如果自己是server,可以看看是自己的哪个服务导致的:
1ss -t state time-wait -nn |awk '{print $3}'|sort |uniq -c |sort -nr - 或者,只统计外部服务器的IP也可能有助于找到问题的原因
1ss -t state time-wait -nn |awk '{print $4}'|awk -F":" '{print $1}'|sort |uniq -c |sort -nr - 。。。
解决办法:
- 长连接
- 不要主动关闭连接,如果走的是http协议,而且是别人的服务,则可以(如果对方支持的话)强制使用HTTP/1.0协议,这样的话,client端不做主动关闭,就不会有timewait;
- HTTP/1.1中有个Connection的头,可以设置Connection: close,server端就会主动关闭连接了
效果跟踪:下面是使用HTTP/1.0后的效果: