ASP.NET性能在32位/ 64位服务器之间降低

我们目前正在将我们的32位生产服务器升级到更强大的64位服务器,同时升级到ASP.NET 4.但是,在进行一些轻负载测试时,我们似乎正在降低性能

我创建了一个简单的负载测试,其中包含20个用户的恒定负载,执行一些简单的用例并比较结果:

如您所见,性能最高的配置是使用ASP.NET 2.0的现有32位服务器.

您可以看到,通过在64位计算机上以32位模式运行IIS,它与现有的32位服务器相当,但在64位服务器上以64位模式运行IIS时 – 性能明显较差.鉴于新服务器更好,我不确定为什么会这样.

出于某种原因,每次我使用64位IIS运行测试时,开始时会有一个大的峰值,然后它会均匀,但仍然具有比32位更高的响应时间.当我以32位模式运行IIS时,尖峰消失了.

请注意,应用程序池/应用程序未在测试之间重新启动,但峰值始终存在且响应高于其他配置.

所以 – 我的问题是:有没有人知道为什么会这样?我需要设置任何配置设置吗?有没有人对如何缩小造成差异的因素有一些指示?

当前的生产服务器:Win Server 2003 – 32位 – IIS6

新服务器:Win Server 2003 R2 – 64位 – IIS6

解决方法

根据文档,MS重新建议在64位服务器上运行32位应用程序池,因为Web应用程序不应该使用更多内存(内部).

32位应用程序总是性能更高 – 较小的指针意味着一组特定指令所需的内存更少,这意味着更高的缓存命中率.

64位进程只有有限的意义 – 当进程真正需要更多内存时.如果你保持你的网络前端做那个(前端)没有理由它需要那么多的内存;)

最重要的是,实际升级到更高性能的版本是有道理的. IIS6在性能上吸得很大 – 如果运行ASP.NET /托管代码,IIS 7.5会更好,特别是如此.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...