visual studio负载测试中95%的响应时间是如何计算的

How is 95% response time calculated in visual studio load test

在分析 VSTS 负载测试报告时,我们发现端点的响应时间如下

按照 VSTS 的建议,采样率设置为 15 秒(当我们设置低于 15 秒时,我们会收到警告)。我们使用 VSTS 云产品来生成负载。

在性能图中(在结果中)显示的响应时间峰值大约为 0.7 秒,没有超过此值。当我们下载示例时,我们看到所有条目(每 15 秒 1 个条目)的数据与图表上绘制的内容匹配,并且小于 0.7 秒。

我们的 SLA 是支持 1 秒 95%。现在我们无法理解

  1. 90%、95% 和 99% 的响应时间是如何计算的(使用什么数据)
  2. 我们如何才能获得有关占 95% 响应时间的请求的更多数据,以便我们进行调试

对于每个不同的计数器,在每个采样间隔中生成一个值,该值显示在图表上。因此,图表通常似乎忽略了峰值。结果表收集了所有值,响应时间的百分位数是通过排除最慢的值来计算的。如果总共收集了 N 个响应时间,那么第 90 个百分位数将排除那些 N 次中最慢的 10%,对于其他百分位数也是如此。要了解响应时间的范围,请比较和对比这些值:

  • 百分位数。
  • 平均值。但请记住,平均值可能会因一些非常大或非常小的值而失真。
  • 中位数。这是通过排除几乎一半的最慢值和相同数量的最快值而找到的。
  • 最小值和最大值

Microsoft 有几个关于分析负载测试结果的网页。 This page 是一个开始。在网络上搜索诸如 site:microsoft.com analysing load test results 之类的术语应该会找到更多详细信息。

百分位值由 SQL 存储过程计算得出,可以通过探索负载测试数据库找到这些存储过程。在我的 Windows 10 计算机上,它位于文件中:C:\Users\AdrianHHH\LoadTest2010.mdfC:\Users\AdrianHHH\LoadTest2010_log.ldf。这些过程也显示在负载测试数据库创建脚本中,该脚本应该在 C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\loadtestresultsrepository.sql 中(但更改 11.0 以反映您的 Visual Studio 版本)。