除了 64 位内存分配的优势(> 4 GB -请参阅 StackOverflow 上的这个问题,了解为什么 32 位 +4 GB 解决方案对我不起作用),我还有什么其他理由建议我们应该托管一个 ASP .NET 网站在 64 位 Windows Server 2008 上,而不是 32 位版本?
如果只是更大的可寻址内存(> 4 GB)问题,无论如何我们都有一个负载平衡的解决方案,因此我们可以通过添加一个新的(虚拟)盒子来扩展。
CPU 也不会过热,因此任何边际速度提升都是不合理的。
我自己的直觉是,如果可以的话,我们应该托管在 64 位上,纯粹是因为它更容易扩展(通过在需要时插入更多 RAM)。 但就这样吗?!
欢迎所有意见和想法!
我认为您真正应该问的问题是为什么不使用x64?如果您的硬件受支持并且您的应用程序可以正常工作,那么坚持使用 32 位的理由是什么?几乎没有成本差异,而且所有未来软件都将采用这种方式,例如 Exchange 2007 仅 64 位,我相信许多新软件都会采用这种方式。
如果你不能拿出一个令人信服的理由来坚持使用 32 位,那么我会选择 64。
老实说:在我看来,64 位应该是多年来的默认设置!我无法相信 Windows 社区需要多长时间才能进行切换。我不明白为什么微软还要费心发布 32 位 Vista(现在甚至是 Windows 7)。甚至 Apple 也决定从 PowerPC 切换到 32 位 x86,尽管当时大多数 CPU 已经能够支持 64 位。这对我来说毫无意义。如果一切都是 64 位且只有 64 位,一切都会变得容易得多。
有很多“原因”,但最重要的是微软的所有产品都采用 x64。它有点“面向未来”的设计,并为您的 ASP.NET 应用程序提供了更多失败的空间(例如,来自 OOM 错误)。
这与 ASP.NET 无关,但为了完整起见,我将添加。某些 Microsoft Server 产品(例如Exchange Server 2007)只能在 64 位 Windows 平台上运行。我想你可以称之为好处。
我不认为两者之间的成本差异很大,那么为什么不使用 Windows Server 2008 64 位部署新服务器呢?能够利用其更大的内存容量是使用它的最佳(也是我所知道的)理由。现在内存如此便宜,对于新服务器来说,4 GB 似乎太少了!
在最近关于 64 位计算的 RunAs Radio 播客中,这个问题有大约 10 个很好的答案。
提到的一件事是总线宽度增加了一倍,因此可以更快地读取/写入数据。与家庭使用的 32 位相比,性能提升可能很小,但对于服务器来说肯定是值得的。
有一个类似于 Y2K 的模糊(但真实)的错误会影响大多数 32 位机器。这是由于在某些 Windows 程序中也使用的unix epoch,最大值为 2038 年的某个时间。此时它将环绕到 1901!
参见维基百科“ 2038 年问题”
与这个问题相关,因为它影响使用标准机器大小的变量来存储 unix 纪元的 32 位机器。这将通过升级到 64 位来解决。