每个用户的连接与响应时间之间的关联

时间:2019-11-12 01:02:13

标签: c# azure asp.net-core performance-testing

我正在使用Visual Studio测试基于C#和ASP.Net Core的端点。我发现每个用户的连接与响应时间之间存在巨大的相关性。

这是一个例子。除了每个用户的连接以外,我没有更改任何其他配置:

每个用户的连接数:1000

enter image description here

每个用户的连接数:20

enter image description here

有人可以解释每个用户的连接是什么吗?怎么不会对用户负载数和每秒请求产生多大影响?

2 个答案:

答案 0 :(得分:1)

在此处查看此文章:https://docs.microsoft.com/en-us/visualstudio/test/load-test-run-settings-properties?view=vs-2019

实际上,您只是在增加并发调用。浏览器将同时进行更多调用,从而增加了并发负载。我希望获得一个值后,根据实现的不同不会有任何区别。

您的api中必须有如此多的连接,因此您必须等待很长的时间。

  • “每个用户的连接”模型模拟使用实际浏览器的用户的行为。模拟Internet Explorer 6或Internet Explorer 7时,每个运行Web性能测试的虚拟用户都使用一个或两个专用于Web服务器的连接。在发出Web性能测试中的第一个请求时,将建立第一个连接。当页面包含一个以上的从属请求时,可以使用第二个连接。这些请求是通过两个连接并行发出的。这些连接将重新用于Web性能测试中的后续请求。 Web性能测试完成后,连接将关闭。此模型的缺点是,在代理计算机上保持打开状态的连接数可能很高(最多为用户负载的两倍)。因此,支持此高连接数所需的资源可能会限制可以由单个负载测试代理驱动的用户负载。模拟Internet Explorer 8时,支持六个并发连接。
  • 连接池模型通过在多个虚拟Web性能测试用户之间共享与Web服务器的连接来节省负载测试代理上的资源。如果用户负载大于连接池大小,则由不同虚拟用户运行的Web性能测试将共享一个连接。这可能意味着当另一个Web性能测试正在使用该连接时,一个Web性能测试可能必须等待才发出请求。负载测试性能计数器“平均连接等待时间”将跟踪Web性能测试提交请求之前等待的平均时间。该数字应小于页面的平均响应时间。如果不是,则连接池大小可能太小。

答案 1 :(得分:0)

每个用户的连接-网络测试的每个虚拟用户都使用与网络服务器的专用连接,并且在网络测试会话完成时,该连接将关闭。

要减少每个用户的连接,请应用以下逻辑-

  1. 在事务之间增加更多的思考时间,这将减少每秒的请求和连接。
  2. 在事务之间添加节奏/延迟
  3. 进行缓慢的负载测试