【发布时间】:2016-08-10 08:04:42
【问题描述】:
我遇到了 IIS 中的 WebAPI 解决方案导致响应时间增加的问题。
我使用在我的开发机器上运行的简单 JMeter 测试计划生成负载。我的测试计划使用 15 个线程重复 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 日志记录
- 启用和禁用动态内容压缩
希望有人能够为我指明正确的方向。谢谢!
【问题讨论】:
标签: performance jmeter asp.net-web-api2 iis-7.5 performance-testing