我们ASP.NET application
在几台服务器上运行同样的程序:
- 一个实例
IIS 8.5
在Windows Server *2012* R2
- 两个实例
IIS 7.5
在Windows Server *2008* R2
让我恼火的是更新机器似乎表现更差比两台旧机器都好!
在 2012 年的盒子上,大约 80 分钟的窗口显示平均37% CPU 使用率(处理器时间)以及8 个请求/秒一般。
在 2008 年的盒子上,在同一时间范围内,我看到32.5%CPU使用率和12.5 请求/秒:
此外,2012 年包装盒上的 CPU(英特尔酷睿i7-4770@ 3.40GHz)实际上应该比 2008 年机器上的(Intel XeonE3-1230@3.20GHz):
让我更加无法理解这种性能差异的是,2012 实例只运行一个 ASP.NET 应用程序,而两个 2008 服务器也完成其他任务:一个运行由所有三个应用程序实例访问的 DB 服务器,另一个在同一个 IIS 实例下运行相当多的其他 ASP.NET 应用程序。
问题:
有人能解释一下导致装备较好的服务器在 ASP.NET 应用程序性能方面落后这么多的罪魁祸首是什么吗?
答案1
我相信这已在多个地方讨论过,但均衡电源计划可能会导致性能状态之间过度转换。这会导致性能极差,并影响物理和虚拟。
将电源计划更改为高性能充分发挥硬件的潜力。
使用“平衡”电源计划时,Windows Server 2008 R2 的性能下降:
https://support.microsoft.com/en-us/kb/2207548
https://sqlserverperformance.wordpress.com/2010/09/28/windows-power-plans-and-cpu-performance/
http://www.brentozar.com/archive/2010/10/sql-server-on-powersaving-cpus-not-so-fast/
由@oliver编辑:
切换到高性能电源计划产生了以下 PerfMon 统计数据: