socket压测时超时错误导致虚拟用户失败
本帖最后由 iter777 于 2015-3-2 16:32 编辑第一次做socket的性能测试,用C#写了个简单的windows form去访问一个wcf服务,但是发现在controller中跑压测的时候,一段时间就会出现“错误: 尝试 connect 的超时时间已到。错误代码: 9017。”这个错误,并且出现后这个虚拟用户就从run状态变为failed状态了。脚本如下,错误指向lrs_create_socket, data里数据显示乱码就不贴了:
lrs_create_socket("socket0", "TCP", "RemoteHost=192.168.1.11:8093",LrsLastArg);
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
lrs_send("socket0", "buf2", LrsLastArg);
lrs_receive("socket0", "buf3", LrsLastArg);
lrs_close_socket("socket0");
return 0;
请问这是正常现象吗?为什么socket一个超时后这个虚拟用户就会失败?场景设置是持续运行1小时。 补充下,这个错误不是回放时出的,是在controller中。比如一个vuser可能跑了100次都没问题,突然第101次出了这个错误,然后就失败了。 补充下,错误并不是回放时产生的,回放正常。在controller中会陆续发生这个错误,500个并发持续跑1个小时最后有200多失败用户,可能一个用户跑100次正常,但101次遇到了这个错误,然后就失败了。 压力过大或服务器异常等原因都会导致socket创建不成功,默认就终止运行了,可以在controller里的设置中勾选continue on error来继续运行。
另外在create的前面加上一个lrs_set_connect_timeout(90,0)延长创建socket的等待时间,也能让这个错误少一些。
压力过大或服务器异常等原因都会导致socket创建不成功,服务器端出现排队,不能及时处理任务导致的
页:
[1]