32位/ 64位服务器之间的ASP.NET性能下降


9

我们目前正在将32位生产服务器升级到功能更强大的64位服务器的过程中,同时又升级到ASP.NET4。但是,在进行一些轻负载测试后,性能似乎有所下降!

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

页面回复

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

您可以看到,通过在64位计算机上以32位模式运行IIS,它可以与现有的32位服务器相当,但是当在64位服务器上以64位模式运行IIS时,性能将大大降低。我不确定为什么会这样,因为新服务器更好。

出于某种原因,每次我使用64位IIS运行测试时,开始时都会出现较大的峰值,然后平均下来,但响应时间仍高于32位。当我以32位模式运行IIS时,峰值消失了。

64位秒杀

请注意,在两次测试之间并没有重新启动应用程序池/应用程序,但是峰值始终存在,并且响应高于其他配置。

所以-我的问题是:有人知道为什么会这样吗?我需要设置任何配置设置吗?有人对我如何缩小造成差异的原因有任何建议吗?

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

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

Answers:


4

根据文档,MS建议在64位服务器上运行32位应用程序池,因为Web应用程序无论如何(内部)都不应使用更​​多的内存。

32位应用程序始终具有更高的性能-较小的指针意味着一组特定指令所需的内存更少,这意味着更好的缓存命中率。

64位进程的意义有限-当进程确实需要更多内存时。如果您让Web前端仅这样做(前端),就没有理由它需要那么多的内存;)

最重要的是,实际升级到性能更高的版本是有意义的。IIS6在性能上不胜一筹-IIS 7.5更好,尤其是如果您运行ASP.NET/托管代码。


有趣,谢谢。我不认为您具有建议的MS文档链接,因此我可以做一些进一步的阅读?不幸的是,我无法使用II7 +,因为我受到Win2k3的束缚:(
DavidMasters84

IIS.net托管指南;)对于iis 7,)
TomTom

听起来就像80年代比尔·盖茨(Bill Gates)所说的那样:“因为Web应用程序不应该使用更多的内存” :)您有指南的链接吗?
弗雷德里克·约翰逊

2

我们在Windows 2K3服务器上尝试了此操作,并得到了相同的结果,当时我不在这里,但这与他们在2K3中MS实现64Bit .Net的方式有关(不确定什么,但是告诉我的人是MVP,所以我会相信他的话。)

只是让您知道,如果您迁移到Win2K8,可能会看到与我在此处使用我们的服务器所做的相同的事情,并且遇到了相同的性能问题。据我所知,并读了一些书以充分利用64Bit .Net,建议使用集成管道(http://msdn.microsoft.com/zh-cn/magazine/cc135973.aspx

抱歉,这不能回答您的问题,但我想我会让您知道,您不是唯一看到此问题的人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.