IIS 7.5 WebAPI 性能扩展问题
IIS 7.5 WebAPI performance scaling issue
我遇到了 IIS 中 WebAPI 解决方案响应时间激增的问题。
我使用一个简单的 JMeter 测试计划生成负载,运行 在我的开发机器上。我的测试计划使用 15 个线程重复 15 个静态调用。在 7 分钟内,负载约为 90K 个请求。吞吐量约为 203 requests per second
.
在线程增加期间,JMeter 正在增加负载,响应时间开始包含尖峰,该尖峰在整个测试过程中持续存在。机器和应用程序似乎并没有真正出汗:CPU 上的负载约为 30-40%
,因此远未饱和。在整个测试过程中,应用程序没有 return 一个错误。
关于应用程序和机器的细节:
- 该应用程序是 .Net 4.6 WebAPI 解决方案。缓存在机器本身的内存中。
- 托管在
4CPU /4GB RAM
机器上的 IIS 7.5
- 使用一个工作进程的集成管道应用程序池 (.Net 4)
- 进程模型在
machine.config
文件中设置为自动配置。
到目前为止我尝试解决此问题的方法:
- 通过在不同的机器和位置上执行测试来消除网络和其他基础设施的影响。即使在调用本地主机的机器上也是如此。
- 将“ASP 每个处理器的线程限制”从 25 增加到 100(最大值)
- 将工作进程数增加到 4
- 完全禁用 IIS 日志记录
- 启用和禁用动态内容压缩
希望有人能够为我指明正确的方向。谢谢!
我遇到了 IIS 中 WebAPI 解决方案响应时间激增的问题。
我使用一个简单的 JMeter 测试计划生成负载,运行 在我的开发机器上。我的测试计划使用 15 个线程重复 15 个静态调用。在 7 分钟内,负载约为 90K 个请求。吞吐量约为 203 requests per second
.
在线程增加期间,JMeter 正在增加负载,响应时间开始包含尖峰,该尖峰在整个测试过程中持续存在。机器和应用程序似乎并没有真正出汗:CPU 上的负载约为 30-40%
,因此远未饱和。在整个测试过程中,应用程序没有 return 一个错误。
关于应用程序和机器的细节:
- 该应用程序是 .Net 4.6 WebAPI 解决方案。缓存在机器本身的内存中。
- 托管在
4CPU /4GB RAM
机器上的 IIS 7.5 - 使用一个工作进程的集成管道应用程序池 (.Net 4)
- 进程模型在
machine.config
文件中设置为自动配置。
到目前为止我尝试解决此问题的方法:
- 通过在不同的机器和位置上执行测试来消除网络和其他基础设施的影响。即使在调用本地主机的机器上也是如此。
- 将“ASP 每个处理器的线程限制”从 25 增加到 100(最大值)
- 将工作进程数增加到 4
- 完全禁用 IIS 日志记录
- 启用和禁用动态内容压缩
希望有人能够为我指明正确的方向。谢谢!