在自行配置的测试设备上运行负载测试时,我收到了套接字异常。
我从我的本地机器触发代理机器(自配置测试设备)中的负载测试。
注意:在最初的2到3分钟内,测试迭代正在通过,之后我们将得到Socket异常。
以下是错误消息:
连接尝试失败,因为连接方没有在一段时间或建立连接后正确响应失败,因为连接的主机无法响应。
以下是堆栈跟踪详细信息:
位于的System.Net.Socket.Socket.EndConnect(IAsyncResult-asyncResult)System.Net.ServicePoint.ConnectSocketInternal(布尔连接失败,插座s4、插座s6、插座&套接字,IPAddress&住址ConnectSocketState状态,IAsyncResult异步结果,异常&例外)
运行时间-20分钟
采样率-10秒
预热持续时间10秒
使用的代理数量-2
负载模式:
初始负载-10用户
最大用户计数-300
步长持续时间-10秒
步长用户计数-10
尽管如此,通过改变上述值,我仍然以同样的方式获得了异常。
我使用的是Visual studio 2015企业版。
问题指出:从10个用户开始,每10秒增加10个用户,最多300个。因此,在29个增量之后,将有300个用户,这将花费29*10秒,即4m50秒。因此,测试将(尝试)在剩余的15分钟10秒内以300个用户的最大负载运行。
假设所有测试在最初的2或3分钟内都通过了,再加上错误消息,这表明您正在使网络的某个部分过载。它可能是代理,可能是服务器,也可能是它们之间的连接。一些网络组件具有最大数量的活动连接,并且300个用户可能太多。
如此迅速地增加负载意味着你不清楚极限值是多少。采样率(10秒)似乎很高。在每个采样间隔,都会传输大量数据(即采样数据),这些数据可能会淹没网络的部分。您应该查看代理和控制器的网络计数器,以及服务器(如果可用)。
我建议将负载测试步骤更改为每30秒添加10个用户,因此达到300个用户大约需要15分钟。将采样率降低到每20秒也是值得的。