我有一个 mvc4 web api,它在 4 个物理服务器(运行 win2008R2 64 位的 64G 内存的 xeon 2.5Ghz 6 核 12 逻辑处理器)上平均服务(W3SVC_W3WP)50req/sec(每台服务器)。
最近,由于容量规划不佳,我们开始被新请求淹没,我们看到大量排队(asp.net v4.0.30319 Requests Queued = 2k-5k),总请求/秒高达约 200(之前平均为 50我们可以处理)。
我可以做些什么来帮助在四台服务器上扩展我的应用程序?
这是一些性能计数器的链接-> http://bit.ly/WHFNv0
给定:
- IIs 7.5 - 2 个网站(都公开 web rest api)在一个 64 位集成应用程序池上运行
- 每台服务器的 CPU ~25-55%
- 一个工作进程 (w3wp.exe)
- 队列长度 = 1000
机器配置:
<system.web>
<processModel autoConfig="false" maxWorkerThreads="4095" maxIoThreads="4095" minIoThreads="2047"
requestQueueLimit="5000" responseDeadlockInterval="00:03:00" />
<httpRuntime minFreeThreads="704" minLocalRequestFreeThreads="608" />
</system.web>
在 IIS 高级池设置中从 1 -> 2 设置最大工作进程似乎没有多大帮助。