负载测试疑难解答(来自MSDN)

负载测试疑难解答

Visual Studio Team System
负载测试疑难解答

 

更新:2007 年 11 月

在启用 SQL 跟踪的情况下本地运行负载测试时,可能会收到以下消息:

运行测试时出错。未能启动 SQL 跟踪: 您没有运行“SP_TRACE_CREATE”的权限

若要在运行 Windows Vista 操作系统的计算机上本地运行的负载测试中使用 SQL 跟踪,您必须是正在跟踪的 SQL Server 的实例上的 sysadmin 角色的一个成员。若要解决此问题,SQL Server 管理员必须将您添加到 sysadmin 角色中。

此错误指示未创建负载测试数据库架构。可以使用查询分析器运行位于 <Visual Studio 安装文件夹>\Common7\IDE\ 中的 LoadTestResultsRepository.Sql 文件来创建数据库。

如果您使用的是 SQL Express,则可以在以前列出的目录中的命令提示符处运行“sqlcmd -S .\SQLEXPRESS -i loadtestresultsrepository.sql”。

警告:

参数区分大小写。必须键入大写的 S 和小写的 i。

有关更多信息,请参见 如何:使用 SQL 创建结果储存库

当包含在负载测试中的一个计数器集中的性能计数器在包含它的性能计数器类别中无法找到时,会发生此错误。如果此计数器已添加到计数器集中,则性能计数器的名称可能拼写错误。也可能是性能计数器在类别中不再存在,因为性能计数器在定义它的较新版本的软件组件中已被删除。可以从计数器集中将其移除,这样可以更正此错误而不会丢失任何有用的数据。

此错误指示控制器无法以负载测试的指定采样速率收集所有计算机的性能计数器结果。当负载测试的计数器集映射指定从多个不同的计算机收集多个性能计数器时,可能会发生此错误。当负载代理与控制器所在同一台计算机上运行时,也会发生此错误。通过增加负载测试的采样速率可能能够更正此错误。

只要发生 1000 个或更多相同类型的错误,就会发生此错误。此错误通常指示在负载测试下运行的测试存在问题。例如,如果 Web 测试向找不到的 URL 发出请求,则应该更正此 Web 测试以修复此错误。

在远程测试机组 (Rig) 上运行测试时,可能会收到以下消息:

没有与选择条件匹配的代理计算机

在远程测试机组 (Rig) 上运行测试时,可以为连接到控制器的代理计算机指定选择条件。例如,可以指定只有装有特定操作系统的代理才能用于运行测试。如果没有指定条件,则所有连接到控制器的代理都将用于运行测试。如果没有与选择条件匹配的代理,则不会运行测试。

若要解决没有与选择条件匹配的代理计算机这一问题,请按照下列步骤操作:

  1. “测试”菜单上指向“编辑测试运行配置”,再单击当前活动的配置。

    说明:

    若要查找当前活动的配置,请在“测试”菜单上指向“选择活动测试运行配置”。活动配置前面将有一个选中标记。

  2. 在列表框中单击“控制器和代理”

  3. 在“名称和值”网格中,删除会将要用于运行测试的代理排除的条件。

  4. 完成后,单击“应用”,再单击“确定”

运行负载测试时,可能会收到以下消息:

未能访问负载测试结果存储库

导致此错误的一个可能原因是使用 SQLCMD 命令行实用工具设置负载测试结果存储库时,为参数名指定了不正确的大小写。以下代码是在名为 ContosoServer1 的服务器上设置负载测试结果存储库的示例命令:

SQLCMD -S ContosoServer1 -U <user name> -P <password> -i loadtestresultsrepository.sql

警告:

参数区分大小写。必须键入大写的 S、U 和 P 以及小写的 i。

有关更多信息,请参见 如何:使用 SQL 创建结果储存库

运行负载测试时出现的常见问题是无法生成期望的负载。下表列出了导致此问题的一些可能原因:

最大负载受到思考时间或虚拟用户数的限制。

如果打开了思考时间,则它会限制每个虚拟用户提交请求的速率。例如,每个请求的思考时间为 5 秒,则每个虚拟用户每秒最多的请求数为 0.2 个。可以按优先选择的顺序尝试下列更改之一:

  1. 增加虚拟用户数以生成更真实的负载。增加虚拟用户数通常需要更多内存。

  2. 缩短思考时间。

  3. 关闭思考时间以生成最大的负载。

    警告:

    关闭思考时间会对测试引擎产生很大的影响。如果关闭思考时间,请减少虚拟用户数。

     

将 Web 测试的代理属性设置为“default”。

将“default”用作 Web 测试中的代理设置很方便,因为它可以启用自动代理服务器检测。但是,将“default”用作代理设置会在负载测试中导致性能问题,并且会大大减少最大吞吐量。运行负载测试时,最好不要使用代理服务器。如果需要代理服务器,请指定代理服务器的名称来代替“default”。

应用程序瓶颈。

请记住,负载测试工具的作用便是找出应用程序中的瓶颈。如果页面因数据库或 CPU 瓶颈而导致响应时间过长,则它会限制每个虚拟用户每秒发出的请求数。请从少量的负载开始,并确保缓慢增加负载时能够保持合理的响应时间。可以使用“响应时间目标”属性为每个请求设置期望的最长响应时间。

Web 服务器的 CPU、内存或网络超过了其限制。

如果 Web 服务器的 CPU、内存或网络超过了其限制,则可能无法生成期望的负载。可能您已经找到了服务器的负载限制。可以增加 Web 服务器的 CPU、内存或网络。

生成负载的计算机的 CPU 内存或网络超过了其限制。

可能需要更多功能强大的计算机或更多代理计算机才能生成所需的负载。

数据库服务器(如果适用)的 CPU、内存或网络超过了其限制。

如果数据库服务器的 CPU、内存或网络超过了其限制,则可能无法生成期望的负载。可能您已经找到了数据库服务器的负载限制。可以增加数据库服务器的 CPU、内存或网络。

在多核计算机上运行负载测试时,负载生成有以下限制:

  • 如果该计算机运行的是 Visual Studio Team System Test Edition 或 Visual Studio Team System,则负载生成仅限于单核。

  • 如果该计算机运行的是 Visual Studio Team System Test Load Agent,则负载生成不受限,在所有内核和处理器上运行。

posted @ 2009-03-24 15:33  dodo-yufan  阅读(1156)  评论(0编辑  收藏  举报