对于ASP.Net应用程序,Windows 64位优于32位的主要优点是什么?


8

除了64位内存分配的优势(> 4 GB,请参阅StackOverflow上的此问题,以了解为什么32位+4 GB解决方案对我不起作用),还有什么其他理由建议我们托管一个ASP? .NET网站是64位Windows Server 2008还是32位版本?

如果仅是较大的可寻址内存(> 4 GB)问题,无论如何我们都有一个负载平衡的解决方案,因此我们可以通过添加一个新的(虚拟)盒来扩展。

CPU也不会在高温下运行,因此无法证明任何边际速度的提高。

我自己的直觉是,如果可以的话,我们应该在64位主机上运行,​​纯粹是因为它更易于扩展(在需要时通过插入更多RAM)。 但是是吗?

欢迎所有评论和想法!


共享还是专用?共享服务器上的网站配置中的重大差异...
Christopher_G_Lewis


实际上,MS建议在64位操作系统上以32位模式运行ASP.NET应用程序。4g的32位是一个不好的限制,因为它计入系统中。在64位系统上,您可以拥有4 GB以上的内存,而apsp.net使用了其中的一部分。缓存等可以在外部完成。
TomTom

@TomTom这个建议今天仍然适用吗?如果是这样,您有参考吗?
Ohad Schneider

Answers:


15

我认为您应该真正问的问题是为什么不使用 x64?如果您的硬件受支持并且您的应用正常运行,那么坚持使用32位的原因是什么?成本差异几乎没有或几乎没有,而且所有未来软件的运行方式也没有差别,例如,Exchange 2007仅是64位的,我敢肯定,许多新软件也会采用这种方式。

如果您不能提出一个令人信服的理由坚持使用32位,那么我会选择64。


12
  • x86_64 cpus 在其页表中确实有不执行位。即,这可以防止由于缓冲区溢出而引起的安全漏洞。32位x86 cpus仅在PAE模式下支持此功能。
  • 您只能使用签名的Windows驱动程序。恕我直言,这是一个优势,因为您无法使用未经测试的故障驱动程序来破坏系统。请记住,大多数Windows问题是由损坏的驱动程序引起的。

老实说:我认为64位应该是多年来的默认值!我不敢相信Windows社区需要多长时间进行切换。我不明白为什么微软甚至不愿意发布32位Vista(现在甚至是Windows 7)。即使当时苹果公司也决定从PowerPC切换到32位x86,尽管当时大多数cpus都已经能够支持64位。这对我完全没有意义。如果所有内容都是64位且只有64位,那么一切将变得更加容易。


+1此答案指出了64位Windows在32位上的“未知”功能。
Matt

当您需要使某些硬件正常工作时,签名驱动程序可能会很麻烦,并且Windows决定不安装驱动程序,因为它没有签名,即使它可以正常工作。
Dentrasi

1
在服务器上,尤其是在虚拟服务器上,这几乎不是一个问题;)IOt在台式机上更为常见,但服务级别上所有驱动程序都已签名。
TomTom

4

有很多“原因”,但首先是微软所有产品都在使用x64。它有点“面向未来”的设计,并为ASP.NET应用程序提供了更大的失败空间(例如,由于OOM错误)。


4

这与ASP.NET不相关,但是为了完整起见,我将其添加。某些Microsoft Server产品(例如Exchange Server 2007)仅在64位Windows平台上运行。我认为您可以称之为好处。


2

我认为这两者之间没有显着的成本差异,那么为什么不只将新服务器与Windows Server 2008 64位一起部署呢?利用其更大的存储容量的能力是最好的(也是我所知道的)使用它的理由。如今,内存如此便宜,对于一台新服务器而言,4 GB似乎太少了!



0

有一个类似于Y2K的晦涩(但真实)的错误会影响大多数32位计算机。这是由于在某些Windows程序中也使用了unix epoch,它的最大值在2038年某个时候出现。这时它将绕到1901年!

参见维基百科“ 2038年问题

与这个问题有关,因为它会影响使用标准机器大小的变量来存储unix历元的32位机器。升级到64位即可解决。

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.