这Windows Azure 网站提供 32 位或 64 位两种选择。新网站默认使用 32 位。对于服务器配置来说,这感觉有点奇怪,因为据我所知,绝大多数 Web 服务器多年来一直采用 64 位配置。考虑到 ASP.NET 网站的常见用例,有什么理由支持 32 位而不是 64 位?
答案1
取决于你的工作量。
x64 上的 IIS + .NET 非常出色,可以支持非常大的工作负载。如果您进行负载测试,您会发现具有足够 CPU 和 RAM 的 x64 服务器的性能远胜于 x86。
如果您的工作量很小,并且/或者您要对多台服务器进行负载平衡,您可能会发现 x86 就足够了。(我坚信使用尽可能小的实例来处理工作量——很多 IT 部门都在使用金属来解决问题,这是浪费。x86 很棒。不幸的是,获得 x86 实例越来越难。)
在我们的案例中,我们对多台 x64 服务器进行负载平衡。但是,在部署操作期间,所有或大部分负载可以定向到单个服务器。在我们的案例中,如果该服务器是 x86,它将承受压力并且非常慢。由于它是 x64,它可以处理负载,而用户不会注意到。
答案2
答案是 - 这很复杂。如果您的应用程序需要访问许多 GB 的 RAM(大多数应用程序不需要),那么您必须使用 64 位。
否则,仅在 32 位和 64 位下测试您的特定应用才能确定,然后取决于对您来说最重要的是内存占用还是 CPU 性能。请记住,如果内存不足,那么您的应用将分页到磁盘,并(以巨大的方式)告别任何性能提升可能已经从切换到 64 位,否则您的自动缩放将启动,并且 Azure 将为添加的服务器实例向您收取更多费用,或者您将开始收到 OutOfMemory 错误,这对您的应用程序来说意味着结束。
也可以看看:https://www.hanselman.com/blog/PennyPinchingInTheCloudYourWebAppDoesntNeed64bit.aspx
答案3
使用 32 位,除非您需要 64 位地址空间 - 这对于普通网站来说很少见。
原因很简单,网站通常不需要地址空间,而且 32bi 程序运行速度更快。
现在你说:
多年来,绝大多数网络服务器都采用 64 位配置
对,但是:
出于兼容性和性能原因,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,否则性能影响是不值得的。