gpt4 book ai didi

visual-studio-2010 - QTAGENT.EXE 使用所有可用的 CPU

转载 作者:行者123 更新时间:2023-12-04 18:49:51 26 4
gpt4 key购买 nike

我对使用 VS 进行负载测试还很陌生,但我认为我已经正常设置了所有内容,但我遇到了一个问题,即负载测试的执行迅速达到 100% CPU 利用率。这似乎会影响我的测试结果,我认为这不是预期的行为。

我的硬件平台是一个强大的开发者机器:几个月前有一个四核、12GB 内存、2 个 IDE 驱动器和一个快速的 NIC。如有必要,我可以详细说明,但通常我会说它尖叫。

我正在测试一个在 Win7 x64 上本地运行的 MVC2/3 应用程序,针对 MSSQL 2008,使用 VS2010 SP1,C#/.NET 4。

底层测试是一个单元测试,它执行单个 MVC Controller 方法,该方法使用 Unity 和其他 Ent-Lib 库根据用户权限从数据库中拉回一组客户端。单元测试的典型执行时间为 0.4 到 0.6 秒。

负载测试设置为暴露性能问题并运行 10 分钟:

  • 初始用户数:1
  • 步骤持续时间:30
  • 步用户数:1

  • 观察:
  • 对于单个用户的前 30 秒,执行有点不稳定。第一次测试需要 3 秒,这是正常的预热。接下来的 15 分钟左右大约需要 0.4 秒,这是完美的。然而,就在 10 秒后,测试开始运行 5 秒。这是之前 第二个虚拟用户来了。随着更多虚拟用户的加入,测试时间逐渐增加,这在意料之中,尽管运行时间似乎仍然很长。
  • 更令人担忧的是,CPU 利用率在用户 6 附近出现峰值(所有 8 个内核之前平均约为 20%)。在用户 6 和 7 处,CPU 使用率达到 70%,并且用户 8 将 8 个内核的 CPU 固定为 100%,并且一直保持到 10 分钟后测试结束。不用说,对于正常的分步测试,我想从 10 个并发用户开始,然后增加到 100 个或更多,但我的 CPU 以 100% 开始,结果肯定不准确。

  • 正如我从正在执行的任务中看到的那样,cuprit 显然是 QTAGENT.EXE。它使用了我所看到的每个空闲 CPU 周期。我也在 32 位模式下运行了这个负载测试,并且 QTAGENT32.EXE 运行类似。

    我不知道为什么我会遇到这个问题,更不用说该怎么办了。任何建议或解决方案表示赞赏。蒂亚!

    编辑

    我发现我的问题的解决方法是通过单击“调试测试”而不是“运行测试”来启动负载测试。这对我来说没有任何意义,事实上,这与我所期望的完全相反;但是,我不能否认它一直在对 100 名用户运行我的测试,并且只对我的 CPU 造成半颠簸(峰值约为 50% 的平均值)。

    最佳答案

    QTAgent 是执行所有负载测试工作的代码。它遍历每个执行测试的虚拟用户。

    测试代理 CPU 被挂起的原因之一是您的网站非常快速地返回结果。模拟这种情况的一个好方法是对静态 html 页面进行负载测试,或者请求一个 IIS 缓存良好的页面。

    检查测试的每秒请求数值。该值是 QTAgent 需要完成多少工作的合理度量。

    对于每个测试,您的 QTAgent 必须处理和发送 html 请求,记录接收到的测试并存储结果以及所有性能监控统计信息。

    我建议下一步在每个单元测试之间添加 1 秒的延迟,这有望让您加载更多的虚拟用户。

    也就是说,在同一台机器上托管的 Web 应用程序上运行负载测试无法在 CPU 挂起之前处理非常多的虚拟用户。

    你能发布每秒请求的统计数据吗?

    关于visual-studio-2010 - QTAGENT.EXE 使用所有可用的 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7824918/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com