以最简单的方法,做最复杂的测试

服务器的TIME_WAIT连接

上一篇 / 下一篇  2009-03-24 17:34:36 / 个人分类:性能测试

平时做压力测试的时候,经常会发现在服务器端产生大量的TIME_WAIT状态的TCP连接,到底这玩意儿会不会对性能产生影响呢?解答这个问题之前,看来需要先分析一下TIME_WAIT产生的具体原因。

TIME_WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认。这个好像是官方说法了,不是太理解,那好再详细一点。

从以上的图可以看出,TIME_WAIT只出现在主动关闭的那个阶段,也就是说只有主动关闭方才会出现这个状态,OK,这样解决了一个大问题咯。那针对我们的case,就是因为服务器端主动关闭连接咯。不过这样又会有两种可能性:1.服务器主动关闭,客户端被动关闭; 2. 服务器、客户端都主动关闭

第一种:

第二种:

这样看来只要服务器主动关闭连接,TIME_WAIT就不可避免,因此应该可以忽略其对性能的影响了,因为如果应用逻辑如此,其无可避免。并且通过在下的测试,TIME_WAIT的连接在等待2MSL后,会由系统释放关闭,此时会占用一些CPU的资源,但占用率几乎可以忽略。

看一下造成服务器端主动关闭的一些方法,主要是针对HTTP的访问:
  • HTTP服务关闭KeepAlive
  • 客户端Header中的Connection定义为Close



TAG:

 

评分:0

我来说两句

日历

« 2024-04-30  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 10676
  • 日志数: 14
  • 建立时间: 2008-12-24
  • 更新时间: 2010-05-10

RSS订阅

Open Toolbar