运行负载测试时无法从某些服务器获取性能计数器

Posted

技术标签:

【中文标题】运行负载测试时无法从某些服务器获取性能计数器【英文标题】:Unable to get performance counters from certain servers when running load tests 【发布时间】:2013-02-11 12:32:20 【问题描述】:

我正在使用 Visual Studio 2010 中的内置系统运行负载测试。设置是一个带有四个代理的测试控制器。我正在运行的测试将负载放在应用程序服务器和数据库服务器上。我遇到的问题是我无法从应用程序服务器和数据库服务器上的性能计数器获取值。我已按照http://msdn.microsoft.com/en-us/library/ms404661%28v=vs.100%29.aspx 和http://blogs.catapultsystems.com/tlingenfelder/archive/2009/06/18/performance-counters-timeouts-and-load-testing-with-visual-studio-2008.aspx 上的说明进行故障排除,但无济于事。

使用性能监视器 (perfmon) 我可以连接并从应用服务器和数据库上的性能计数器获取值,这些计数器在多台计算机上进行了测试。但是在运行负载测试时,我什么也没得到。

我正在尝试获取系统性能计数器,例如 CPU% 和内存使用情况,因此不涉及自定义计数器。

关于我接下来应该做什么的任何提示?

【问题讨论】:

【参考方案1】:

主要问题是我没有意识到为了在负载测试期间从计算机获取性能数据,它应该安装一个测试代理(或控制器)。

    在所有用于负载测试的机器上安装测试代理并将它们注册到控制器(对我来说,appserver 和数据库,那些没有安装测试代理) 在 Visual Studio 的实际负载测试中,从计数器集中删除应用服务器和数据库 再次添加它们 运行测试!

似乎负载测试中对应用服务器和数据库的旧引用没有按预期工作,因此需要删除并再次添加它们。

瞧!性能计数器出现并返回值!

【讨论】:

有关如何执行此操作的更多信息?我已经从这里microsoft.com/en-us/download/details.aspx?id=48152 安装了 Visual Studio 代理,现在尝试运行它时出现错误“尚未配置测试代理。运行测试代理配置工具”我不知道如何运行此工具,它似乎没有安装在我的机器上,也没有从网上下载。【参考方案2】:

我也有同样的问题。 我找到的唯一解决方案是删除计数器集中的一些计数器并增加采样间隔(请参阅here)。

我的装备中的另一件事是角色:代理将运行测试但不收集数据;这将由我的网络服务器完成(在其上安装了一个测试代理)。请看link。

【讨论】:

这对我有帮助!谢谢! :-) 解决方案见下文。

以上是关于运行负载测试时无法从某些服务器获取性能计数器的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure 中使用 Visual Studio Online 加载测试性能计数器

刷题面筋-测开-比较压力测试负载测试性能测试

如何在运行时更改JMeter的负载

将性能计数器与属性一起使用

Cloud Load Test 中的 Web 性能测试在某些测试中发送 cookie

Visual Studio Ultimate 负载测试 - 无法添加 Web 性能测试