【问题标题】:Why is CPU % Decreasing At Highest User Load During Load Testing?为什么负载测试期间在最高用户负载时 CPU % 会降低?
【发布时间】:2014-12-10 21:42:29
【问题描述】:

大家下午好,

我正在对托管在 Windows 2008 Server 虚拟机上的 .NET Web API 进行负载测试。我正在使用 Visual Studio 2012 负载测试。但是,一旦我的负载测试达到 780 个并发用户,CPU % 就会开始下降,如附图所示。负载测试最多可达到 1000 个并发用户,但在最高用户负载时 CPU % 仍在下降。我无法解释为什么。是否达到了任何类型的 IIS 限制?为什么会出现这种情况?此功能是否已达到最大用户负载?

只是在寻找对此结果的解释和一些指导。

谢谢

【问题讨论】:

  • 线程池可能吗?
  • 你能详细说明一下吗?
  • 几个问题:您使用的是什么测试混合类型? (假设最有可能是用户节奏)您是否有最大的测试迭代集?您是否有一种方法可以验证用户在最大用户负载时仍在以期望的速度/速率进行预期的工作?
  • 是否有可能在测试执行的早期阶段(即在所有用户登录时完成)期间发生任何类型的缓存?
  • 也可能是您的应用程序受 I/O 限制,而不是 CPU 限制,因此在某个时间点之后,您的 CPU 开始部分时间处于空闲状态,因为它正在等待磁盘争用或网络资源。

标签: visual-studio-2012 iis asp.net-web-api windows-server-2008 load-testing


【解决方案1】:

IIS 确实有单独的输出缓存设置,默认情况下启用,考虑到它如何处理具有静态响应和缓存价值的动态内容后,它开始变得有意义:

IIS 输出缓存功能以半动态内容为目标。它让 您缓存动态请求的静态响应并增加 可扩展性

配置缓存价值:

即使您启用了输出缓存,IIS 也不会立即缓存一个 要求。在 IIS 考虑 请求“缓存值得”。缓存价值可以通过配置 ServerRuntime 部分。

两个属性决定缓存的价值:

frequentHitTimePeriod
频繁命中阈值

仅当对可缓存 URL 的频繁HitThreshold 请求在频繁HitTimePeriod 内到达时,才会缓存请求。

这是一个很好的解释:http://www.iis.net/learn/manage/managing-performance-settings/configure-iis-7-output-caching

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 2019-05-02
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 2022-01-06
    • 2012-07-28
    相关资源
    最近更新 更多