zoukankan      html  css  js  c++  java
  • 性能测试机中存在大量的TIME_WAIT状态的连接,影响并发压力的发起

    现在一个测试项目,发现性能测试机中有很多TIME_WAIT状态的TCP连接,在网上查了一下,这种状态也叫TCP半连接状态。

    测试环境:9台windows测试机,其中包括一台压力控制机,即controller机器

    服务器环境:IIS7.0+MS SQL

    问题表现:controller机器使用其中任何一台windows测试机并发5个vuser或者更多,都会在8分钟或者10分钟左右出现大量的失败交易

    分析:通过在cmd中查看netstat -ano > d:/port.txt(把netstat打印的信息输出到当前D盘根目录下)查看TCP连接,有大量的TIME_WAIT状态的TCP连接,大约有6W多个time_wait状态的TCP连接,咱们windows系统最大端口数量才只有65536个端口,性能测试机每次通过TCP访问server都会占用一个本地端口,导致time_wait状态(半连接状态)过多,并且不释放,导致新的TCP连接去寻找新的端口。如果widows提供的65536个端口全部用完,time_wait状态大量存在,就不会再有新建立的连接,则会出现timeout,导致大量的并发用户数宕掉。这严重影响了并发的发起,该问题已经提交到运维部,请他们来协助

    解决办法:

    1、修改注册表中的tcpip的属性值:TIMEWAIT回收时间

    在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,添加名为TcpTimedWaitDelay的DWORD键,设置为十进制0,以缩短TIME_WAIT的等待时间。

    测试结果:TIME_WAIT状态的连接依然大量存在,每台机器可以承担少量的并发不会出现错误;当并发增大时则会出现大量的错误。

  • 相关阅读:
    (转)超过 130 个你需要了解的 vim 命令
    ubuntu下解压文件命令大全(转)
    HDU 4681 String
    Linux使用过程中常见问题及其解决方法
    Linux 命令 及 简单操作 学习
    HDU 4666 Hyperspace (最远曼哈顿距离)
    POJ 2049 Finding Nemo
    HDU 4655 Cut Pieces
    <textarea>标签的使用
    数据库插入失败 和回滚
  • 原文地址:https://www.cnblogs.com/zhuque/p/2792539.html
Copyright © 2011-2022 走看看