除了 64 位内存分配 (> 4 GB) 的优势外 -在 StackOverflow 上查看此问题为什么 32 位 +4 GB 解决方案对我来说不起作用),我还有哪些其他理由建议我们在 64 位 Windows Server 2008 上托管 ASP.NET 网站,而不是 32 位版本?
如果只是更大的可寻址内存(> 4 GB)问题,我们无论如何都有一个负载平衡解决方案,因此我们可以通过添加新的(虚拟)盒来扩展。
CPU 也不会运行过热,因此任何边际速度提升都是不合理的。
我自己的直觉是,如果可以的话,我们应该使用 64 位系统,纯粹是因为它更容易扩展(在需要时插入更多 RAM)。 但就这样吗?!
欢迎所有评论和想法!
答案1
我认为你真正应该问的问题是为什么不是转用 x64?如果您的硬件受支持并且您的应用程序可以运行,那么坚持使用 32 位的理由是什么?成本差异很小甚至没有,而且这是所有未来软件的发展方向,例如 Exchange 2007 仅支持 64 位,我相信许多新软件都会采用这种方式。
如果您不能提出一个令人信服的理由坚持使用 32 位,那么我会选择 64 位。
答案2
- x86_64 CPU 确实有不执行位在其页表中。即,这可以防止由缓冲区溢出引起的安全漏洞。32 位 x86 CPU 仅在 PAE 模式下支持此功能。
- 你只能使用已签名的 Windows 驱动程序。在我看来,这是一个优势,因为您不会因为损坏且未经测试的驱动程序而破坏您的系统。请记住,大多数 Windows 问题都是由损坏的驱动程序引起的。
说实话:我认为 64 位应该是默认的年现在!我不敢相信 Windows 社区花了多长时间才做出这一转变。我不明白为什么微软甚至不惜发布 32 位 Vista(现在甚至还有 Windows 7)。甚至 Apple 也决定从 PowerPC 切换到 32 位 x86,尽管当时大多数 CPU 已经能够支持 64 位。这对我来说完全没有意义。如果一切都是 64 位的,而且只有 64 位,那么一切都会变得容易得多。
答案3
有很多“原因”,但首要的原因是微软的所有产品都将采用 x64。这在一定程度上“为未来设计提供了保障”,并为您的 ASP.NET 应用程序提供了更多失败空间(例如,由于 OOM 错误)。
答案4
我认为两者之间的成本差异并不大,那么为什么不直接在新服务器上部署 Windows Server 2008 64 位呢?能够利用其更大的内存容量是使用它的最佳理由(也是我所知道的唯一理由)。如今内存如此便宜,4 GB 对于新服务器来说似乎太少了!