Visual studio 使用VisualStudio2008进行负载测试:分析结果时遇到的问题

Visual studio 使用VisualStudio2008进行负载测试:分析结果时遇到的问题,visual-studio,load-testing,stress-testing,Visual Studio,Load Testing,Stress Testing,我使用Visual Studio Team System 2008 Team Suite对我的Web应用程序进行负载测试(它使用ASP.MVC技术) 负载模式:常量(这意味着我一直有固定数量的虚拟用户)。 我指定了1000个用户的配置,以分析我的Web应用程序在非常紧张的情况下的性能。我在应用程序中进行一些更改时多次运行相同的负载测试 但是在分析负载测试结果时,我发现了一个奇怪的依赖关系:当平均页面响应时间变大时,每秒请求数的值也会增加!反之亦然:当平均页面响应时间较短时,每秒请求数的值较小。当

我使用Visual Studio Team System 2008 Team Suite对我的Web应用程序进行负载测试(它使用ASP.MVC技术)

负载模式:常量(这意味着我一直有固定数量的虚拟用户)。 我指定了1000个用户的配置,以分析我的Web应用程序在非常紧张的情况下的性能。我在应用程序中进行一些更改时多次运行相同的负载测试

但是在分析负载测试结果时,我发现了一个奇怪的依赖关系:当平均页面响应时间变大时,每秒请求数的值也会增加!反之亦然:当平均页面响应时间较短时,每秒请求数的值较小。当用户数量较少(5-50个用户)时,这种情况不会重现


你如何解释这些结果呢?

也许这里对“请求/秒”一词有误解。根据我的理解,Requests/Sec只是表示测试如何将任意数量的请求推送到应用程序中(而不是每秒完成的请求数量)

如果你这么看的话。这也许有道理

高请求/秒将导致更高的平均响应时间(由于某个地方的瓶颈,即CPU限制、内存限制或IO限制)

因此,当每秒请求数增加,并且内存中有大量对象时,内存会受到压力,从而触发垃圾收集,从而降低响应时间

或者,随着每秒请求数的增加,CPU受到重击,您可能不得不等待CPU时间,从而提高响应时间

或者,当您的请求/秒增加时,您的SQL没有得到正确的调优,并发生阻塞和死锁,从而使您的响应时间增加


这些只是你可能会看到这些相关性的例子。您可能需要从CPU、内存使用和IO(网络、磁盘、SQL等)等方面进一步了解它。

也许这里对“请求/秒”这个术语有误解。根据我的理解,Requests/Sec只是表示测试如何将任意数量的请求推送到应用程序中(而不是每秒完成的请求数量)

如果你这么看的话。这也许有道理

高请求/秒将导致更高的平均响应时间(由于某个地方的瓶颈,即CPU限制、内存限制或IO限制)

因此,当每秒请求数增加,并且内存中有大量对象时,内存会受到压力,从而触发垃圾收集,从而降低响应时间

或者,随着每秒请求数的增加,CPU受到重击,您可能不得不等待CPU时间,从而提高响应时间

或者,当您的请求/秒增加时,您的SQL没有得到正确的调优,并发生阻塞和死锁,从而使您的响应时间增加


这些只是你可能会看到这些相关性的例子。您可能需要从CPU、内存使用和IO(网络、磁盘、SQL等)等方面进一步了解该问题。

有关该问题的更多详细信息:我们正在根据标准ASP.NET aspx对渲染引擎[NDjango][1]进行负载测试。我们用来加载测试的web应用程序非常基本——它由两个静态页面组成——没有数据库,没有繁重的处理,只有渲染。我们看到的是,就平均响应时间而言,aspx的预期速度要快得多,但令我惊讶的是,每秒的请求数以及测试期间的请求总数要低得多。 撇开我们正在测试的东西不谈,我同意Jimmy的观点,更高的请求速率会在许多方面阻塞服务器。但据我所知,这将导致响应时间增加-对吗? 如果我们得到的数字真的反映了服务器上发生的事情,我看不出这条规则是如何被打破的。因此,目前我唯一的解释是,这些数字是扭曲的——我们配置工具的方式有问题


[1] :NDjango

有关该问题的更多详细信息:我们正在针对标准ASP.NET aspx对渲染引擎[NDjango][1]进行负载测试。我们用来加载测试的web应用程序非常基本——它由两个静态页面组成——没有数据库,没有繁重的处理,只有渲染。我们看到的是,就平均响应时间而言,aspx的预期速度要快得多,但令我惊讶的是,每秒的请求数以及测试期间的请求总数要低得多。 撇开我们正在测试的东西不谈,我同意Jimmy的观点,更高的请求速率会在许多方面阻塞服务器。但据我所知,这将导致响应时间增加-对吗? 如果我们得到的数字真的反映了服务器上发生的事情,我看不出这条规则是如何被打破的。因此,目前我唯一的解释是,这些数字是扭曲的——我们配置工具的方式有问题


[1] :NDjango

这是一个正常的结果,随着用户数量的增加,您将以每秒更高的请求数加载服务器。任何服务器每秒处理更多请求的时间都会更长,这意味着平均页面响应时间会增加

每秒请求数是应用于应用程序的负载的度量值,平均页面响应时间是应用程序性能的度量值,其中高数量=慢响应

您最好使用逐步增加的用户数或预热期,在这段时间内,负载将逐渐应用到服务器上

此外,由于单个测试机上有1000个虚拟用户,测试机的CPU将完全耗尽。这很可能是你的测试结果出现偏差的原因。通过计算虚拟用户的数量,您会发现,每秒的请求将达到最大值。添加或删除虚拟用户将导致