每个用户的连接数与响应时间之间的相关性

Correlation between Connection Per User and Response Time

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

举个例子。我没有更改任何其他配置,但每个用户的连接数:

每个用户的连接数:1000

每个用户的连接数:20

谁能解释一下什么是每个用户的连接数?为什么它对用户加载数和每秒请求数影响不大?

在此处查看这篇文章: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时,支持6个并发连接。
  • 连接池模型通过在多个虚拟 Web 性能测试用户之间共享与 Web 服务器的连接来节省负载测试代理上的资源。如果用户负载大于连接池大小,不同虚拟用户 运行 的 Web 性能测试将共享一个连接。这可能意味着当另一个 Web 性能测试正在使用该连接时,一个 Web 性能测试可能必须等待才能发出请求。 Web 性能测试在提交请求之前等待的平均时间由负载测试性能计数器 Average Connection Wait Time 跟踪。此数字应小于页面的平均响应时间。如果不是,连接池大小可能太小了。

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

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

  1. 在事务之间增加更多的思考时间,这将减少每秒的请求和连接。
  2. 在交易之间添加pacing/delay
  3. 负载测试的缓慢提升