我有一个网页(ASP.NET 4.0 / MVC 4)。
在我的开发机器(i5-2500 3.3 8GB Win7 VS2010 SP1 Fujitsu Esprimo P700)上,该页面在我的机器上的 devenv 网络服务器上的执行速度为 160 个请求/秒。该页面在我的本地 IIS 7.5 上的执行速度为 250 个请求/秒。(未编译的网络)
该页面在 16 核 32GB RAM 生产服务器(富士通 RX-300 w2k8 rc2 IIS 7.5)上以每秒 20 个请求的速度运行。(编译的网站)
为什么?我认为这是 IIS 配置的问题,但我不知道问题出在哪里。页面在两台机器上都使用 1 个工作进程运行。Web garden 不是一个选项(它有帮助,但应用程序不兼容)
编辑:
prod 和 dev 上的 http.sys 和 tcpip.sys 驱动程序版本相同。测试始终在本地主机上的机器上运行。prod 上的 CPU 使用率为 95% @ 20 req。dev 上为 80% @ 250 req。(32 个线程)此测试不涉及 db 或 io。我打开了服务器,是的,prod 上确实有 16 个 xeon 核心。
答案1
这听起来可能很荒谬,但尝试在 32 位模式下运行 IIS,我知道情况,这有助于将 CPU 消耗降低 50%。
http://www.iis.net/learn/web-hosting/web-server-for-shared-hosting/32-bit-mode-worker-processes
答案2
我解决了这个问题。
12 个核心使服务器变慢。我在系统上运行了 1 个 w2k8 r2 实例。如果我放置 6 个虚拟 w2k8r2 机器,每个机器有 2 个核心,情况就完全不同了。
:-)