IIS 7.5 WebAPI性能扩展问题

时间:2016-08-10 08:04:43

标签: performance jmeter asp.net-web-api2 iis-7.5 performance-testing

我遇到了在IIS中加入WebAPI解决方案的响应时间问题。 我使用在我的开发机器上运行的简单JMeter测试计划生成负载。我的测试计划使用十五个线程重复15次静态调用。 7分钟内负载大约为90K。吞吐量大约为203 requests per second

在线程加速期间,JMeter增加了负载,响应时间开始包含在整个测试过程中持续的尖峰。机器和应用程序似乎并没有真正的汗水:CPU上的负载大约为30-40%,因此几乎没有饱和。在整个测试过程中,应用程序没有返回任何错误。

有关应用程序和机器的细节:

  • 该应用程序是.Net 4.6 WebAPI解决方案。缓存位于机器本身的内存中。
  • 在IIS 7.5上托管4CPU /4GB RAM计算机
  • 使用一个工作进程的集成管道应用程序池(.Net 4)
  • 过程模型在machine.config文件中设置为自动配置。

到目前为止我尝试解决此问题:

  • 通过在不同的计算机和位置上执行测试,消除网络和其他基础架构的影响。即使在机器本身也有调用localhost的地方。
  • 将“每处理器限制的ASP线程数”从25增加到100(最大值)
  • 将工作进程数增加到4
  • 完全禁用IIS日志记录
  • 启用和禁用动态内容压缩

希望有人能指出我正确的方向。谢谢!

1 个答案:

答案 0 :(得分:3)

我建议继续下一步:

  1. 仔细检查JMeter机器运行状况,如果JMeter机器没有足够的资源,执行可能由于JVM上的垃圾收集或交换OS级别而暂停。此外,JMeter默认设置仅适用于测试开发和调试,您需要在运行测试之前至少调整一些JVM参数。参考文献:

  2. 在IIS端的分析器工具遥测下重新运行测试,检查dotTraceANTS等工具,可能是您的应用程序代码有问题。