我在IIS的WebAPI解决方案中遇到了响应时间急剧上升的问题。我使用一个简单的JMeter测试计划在我的开发机器上运行负载。我的测试计划使用15个线程重复执行15个静态调用。负载大约为7分钟内的90K个请求,吞吐量约为
在线程逐步增加的过程中,JMeter正在增加负载,响应时间开始包含尖峰,并持续整个测试过程。机器和应用程序似乎并没有真正劳累:CPU的负载约为
有关应用程序和机器的详细信息:
203个请求每秒
。在线程逐步增加的过程中,JMeter正在增加负载,响应时间开始包含尖峰,并持续整个测试过程。机器和应用程序似乎并没有真正劳累:CPU的负载约为
30-40%
,因此远未达到饱和状态。整个测试期间,该应用程序没有返回任何错误。有关应用程序和机器的详细信息:
- 应用程序是.Net 4.6 WebAPI解决方案。缓存存储在机器本身的内存中。
- 托管在IIS 7.5上,位于
4CPU / 4GB RAM
机器上 - 使用一个工作进程的集成管道应用程序池(.Net 4)
- 进程模型设置为
machine.config
文件中的自动配置。
- 通过在不同的机器和位置上执行测试,消除网络和其他基础设施的影响。即使在具有本地主机调用的情况下,也是如此。
- 将“ASP每处理器线程限制”从25增加到100(最大值)
- 将工作进程数量增加到4个
- 完全禁用IIS日志记录
- 启用和禁用动态内容压缩