VSTS负载测试:添加服务器端性能计数器后未捕获的问题求助
解决VSTS负载测试中无法捕获服务器端性能计数器的问题
我之前也碰到过类似的困扰,别慌,咱们一步步排查,应该能搞定这个问题:
1. 先确认目标服务器的权限配置
要抓取远程服务器的性能计数器,你的VSTS测试服务账号(或者运行测试代理的账号)必须具备目标服务器的对应权限:
- 账号需要加入目标服务器的「Performance Monitor Users」本地组
- 如果要捕获数据库相关计数器(比如死锁),针对SQL Server的话,账号还需要拥有
VIEW SERVER STATE的数据库权限
2. 检查计数器集的配置细节
你提到已经在「Manage counter sets」窗口添加了计数器,可能有些细节没落实:
- 务必确认添加计数器时,正确选择了目标服务器的名称/IP,别选成默认的本地机器(如果服务器是远程的)
- 针对数据库计数器,要选对对应的SQL Server实例(默认实例是
MSSQLSERVER,命名实例格式是服务器名\实例名) - 验证目标服务器上确实存在你选择的计数器——有些计数器需要特定服务开启才会显示(比如SQL Server的死锁计数器依赖SQL Server相关服务运行)
3. 验证远程服务器的监控前置条件
远程性能监控依赖Windows的几个核心服务和设置,必须确保:
- 目标服务器上的Remote Registry服务已启动(建议设为自动启动)
- Windows防火墙允许远程性能监控流量:可以直接启用防火墙里的「Performance Monitor」入站规则,或者临时关闭防火墙做测试(确认问题后再重新配置规则)
- 目标服务器的WMI服务(Windows Management Instrumentation)正常运行,VSTS是通过WMI来获取性能计数器数据的
4. 检查测试设置中的监控配置
别漏了测试设置里的关键步骤:
- 打开你的测试设置文件(
.testsettings),切换到「Data and Diagnostics」标签页 - 确保「Performance Counters」选项已勾选,点击「Configure」按钮,确认里面已包含你要监控的服务器和对应计数器
- 如果用测试代理运行测试,要确认代理已正确注册到你的VSTS项目,且代理服务运行的账号具备前面提到的权限
5. 查看日志定位具体错误
如果前面的步骤都没问题还是没捕获到数据,可以通过日志找线索:
- 测试运行结束后,查看「Test Results」里的详细日志,找有没有性能计数器采集失败的错误提示(比如权限不足、无法连接服务器等)
- 也可以查看目标服务器的系统事件日志,排查是否有相关的权限或连接报错
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

