Windows Azure 网站提供32 位或 64 位两种选项。默认情况下,新站点带有 32 位。对于服务器配置,感觉有点奇怪,因为据 AFAIK,绝大多数 Web 服务器多年来一直采用 64 位配置。考虑到 ASP.NET 站点的常见用例,是否有任何理由偏爱 32 位而不是 64 位?
Windows Azure 网站提供32 位或 64 位两种选项。默认情况下,新站点带有 32 位。对于服务器配置,感觉有点奇怪,因为据 AFAIK,绝大多数 Web 服务器多年来一直采用 64 位配置。考虑到 ASP.NET 站点的常见用例,是否有任何理由偏爱 32 位而不是 64 位?
取决于你的工作量。
x64 上的 IIS + .NET 可以支持非常大的工作负载。如果您进行负载测试,您会发现具有足够 CPU 和 RAM 的 x64 服务器的性能优于 x86。
如果您的工作量很小,并且/或者您要对多个服务器进行负载平衡,您可能会发现 x86 很好。(我非常相信使用尽可能小的实例来处理工作负载 - 很多 IT 部门都在为解决问题而投入大量精力,这很浪费。x86 很漂亮。不幸的是,获得 x86 实例变得越来越难。)
在我们的例子中,我们对多个 x64 服务器进行负载平衡。但是,在部署操作期间,可以将所有或大部分负载定向到单个服务器。在我们的例子中,如果该服务器是 x86 的,它会受到压力并且非常缓慢。由于它是 x64,它可以处理负载并且用户不会注意到。
答案是——这很复杂。如果您的应用程序需要访问许多 GB 的 RAM(大多数应用程序不需要),这很简单,那么您必须拥有 64 位。
否则,只有在 32 位和 64 位下测试您的特定应用程序才能确定地告诉您,然后这取决于对您来说最重要的是什么,内存占用或 CPU 性能。请记住,如果您的内存不足,那么您的应用程序将分页到磁盘并与您从切换到 64 位可能获得的任何性能提升说再见(以一种 huuuuuge 的方式) ,或者您的自动缩放将启动并且您将Azure 会为添加的服务器实例收取更多费用,否则您将开始收到 OutOfMemory 错误,这对您的应用程序来说已经结束。
另请参阅:https ://www.hanselman.com/blog/PennyPinchingInTheCloudYourWebAppDoesntNeed64bit.aspx
除非您需要 64 位地址空间,否则请使用 32 位 - 这对于普通网站来说很少见。
原因很简单,网站通常不需要地址空间,而 32 bi 程序运行速度更快。
现在,你说:
对,但是:
IIS 应用程序池的默认设置是以 32 位模式启动 - 出于兼容性和性能原因。Microsoft 对 IIS 配置的建议是在 64 位服务器上使用 32 位应用程序池。
查看:
http://www.iis.net/learn/web-hosting/web-server-for-shared-hosting/32-bit-mode-worker-processes
为官方声明。
您可以确定它将在 64 位服务器上运行,因为微软目前没有 32 位生产产品。但除非您需要更多的 RAM,否则性能影响是不值得的。