51Testing软件测试论坛

标题: http协议出错Address already in use. Error code : 10048 [打印本页]

作者: wangleis18    时间: 2008-3-17 11:02
标题: http协议出错Address already in use. Error code : 10048
录了一个很简单的打开页面的脚本,回放脚本成功,使用该脚本创建了一个50人打开的场景,运行该场景时,报了下面的错:

Action.c(6): Continuing after Error -27796: Failed to connect to server "192.168.13.100:8080": [10048] Address already in use
Try changing the registry value
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30
and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort to 65534
and rebooting the machine
See the readme.doc file for more information

脚本如下:
Action()
{
        web_url("PV",
                "URL=http://192.168.13.100:8080/PV?peerid={string}&uri={string}",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t1.inf",
                "Mode=HTML",
                LAST);
        web_find("web_find",
                "What=stat",
                LAST);

        return 0;
}

我按照出错提示去修改了注册表中的TcpTimedWaitDelay和MaxUserPort,结果还是一样。
不知哪位仁兄知道这个错误的原因和解决方法!
作者: 54111    时间: 2008-3-17 11:35
192.168.13.100  操作系统是什么
作者: wangleis18    时间: 2008-3-17 14:54
标题: 回复 2# 的帖子
linux
作者: iori    时间: 2008-3-17 16:13
我觉得楼主应该好好查看服务器和网络
作者: liangjz    时间: 2008-3-17 19:51
把并发数降低。
检查是否为loadrunner controller机器还是服务器问题?
作者: higkoo    时间: 2008-3-19 10:48
标题: 不确定
我也遇到过类似的问题

也是提示要改注册表,后来也无效

不过我是在Windows系统下的,后来不了了之
作者: higkoo    时间: 2008-8-1 16:38
标题: 终于又被我遇到
今天是Linux,很简单的URL请求,5个用户就出错了!

   待解
作者: lin_lp    时间: 2008-8-1 17:18
标题: 米遇见过
米遇见过这个问题, 但是很有兴趣知道解决之法.
作者: steelchen134    时间: 2008-8-21 10:34
同样的问题,期待高手解决
作者: ytfei    时间: 2008-9-4 16:19
我也遇到了这个问题。在并发用户为20的时候没有这个问题,当改成25的时候,就出现这个问题了;
如果是因为服务器性能问题,那LOADRUNNER也应该继续运行下去才对啊,为什么报了这个错误以后,用户数就立刻下降,然后停止测试了呢?

而我另外一个项目并发用户到25时没有问题。我在想是不是因为这个项目在多用户的时候,生成的TCP链接太多了(例如到数据库的链接)
作者: mei2628    时间: 2008-12-22 09:39
我也碰到了这个问题,压的时候,每秒点击数到了2000多每秒(因为压测的页太简单,就一个页面上显示几个字符),估计是因为客户端产生压力太大,LR本身的端口释放跟不上导致的。后来把压测的页面加上了thinktime,问题解决了。。
作者: 839690    时间: 2009-4-9 11:49
加入考虑时间还是会出问题的.
作者: 839690    时间: 2009-4-9 11:58
期待高手解决阿~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: lazybone3936    时间: 2009-6-10 17:13
高手来帮忙下啊,我的LR9.1有该问题,而别人的LR8.0却没改问题,郁闷死啦,查看apache,的确maxclients 1000,但这应该就是说明LR没有释放使用过的连接吧???期待高手解救中ing
作者: huangkai    时间: 2009-6-10 18:00
做下IP欺骗,看能否解决,我的问题是做IP欺骗解决的。。。
作者: lazybone3936    时间: 2009-6-11 10:21
我昨天把9.1换成了8.0也没出现该问题,而且我也没有使用IP欺骗,很想这个造成这个问题的原因
作者: superfang    时间: 2010-6-3 10:13
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30  建议调整成
20 或是 10 试试
作者: linghu123    时间: 2011-7-28 09:34
分析:

因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了。

成功的解决方法:

在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如下两个键值:

TcpTimedWaitDelay

MaxUserPort

1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。

2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。

反复验证,问题解决。
作者: moyudong    时间: 2012-10-20 10:05
回复 17# superfang


    科比,我没进去注册表,竟然没找到TcpTimedWaitDelay 这个键值




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2