我在IIS中使用WebAPI解决方案时遇到了响应时间问题. 我使用在我的开发机器上运行的简单JMeter测试计划生成负载.我的测试计划使用十五个线程重复15次静态调用. 7分钟内负载大约为90K.吞
我使用在我的开发机器上运行的简单JMeter测试计划生成负载.我的测试计划使用十五个线程重复15次静态调用. 7分钟内负载大约为90K.吞吐量约为每秒203个请求.
在线程上升期间,JMeter增加了负载,响应时间开始包含在整个测试过程中持续的尖峰.机器和应用程序似乎并没有真正的汗水:CPU上的负载大约是30-40%,因此几乎没有饱和.在整个测试期间,应用程序未返回任何错误.
关于应用程序和机器的细节:
>该应用程序是.Net 4.6 WebAPI解决方案.缓存位于机器本身的内存中.
>在IIS 7.5上,在4CPU / 4GB RAM机器上托管
>使用一个工作进程的集成管道应用程序池(.Net 4)
>流程模型在machine.config文件中设置为auto config.
到目前为止我尝试解决此问题:
>通过在不同的机器和位置上执行测试,消除网络和其他基础架构的影响.即使在机器本身与调用localhost.
>将“每处理器的ASP线程限制”从25增加到100(最大)
>将工作进程数增加到4
>完全禁用IIS日志记录
>启用和禁用动态内容压缩
希望有人能指出我正确的方向.谢谢!
我建议继续下一步:>仔细检查JMeter机器运行状况,如果JMeter机器没有足够的资源,执行可能由于JVM上的垃圾收集或交换操作系统级别而暂停.此外,JMeter默认设置仅适用于测试开发和调试,您需要在运行测试之前至少调整一些JVM参数.参考文献:
> Concurrent, High Throughput Performance Testing with JMeter
> 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure
>在IIS端的分析器工具遥测下重新运行测试,检查dotTrace或ANTS等工具,可能是您的应用程序代码有问题.