在64位操作系统上运行IIS为32位与64位的优缺点是什么?

ent*_*opi 38 asp.net iis 64-bit 32-bit 32bit-64bit

可能更适合"Rack Overflow",但从开发人员的角度来看,在64位Windows主机上运行IIS(同时提供传统的经典ASP和.NET)作为32位进程而不是64位进程有什么优缺点?

32/64(iis/server)超过32/32的主要优点似乎是每个IIS进程内存高达4GB的能力.

我期望32/64超过64/64的优势似乎是更容易访问传统的32位进程内DLL(我们仍有一个来自合作伙伴供应商,我们无法立即离开)给定较小的内存指针,相同代码的内存占用量较小.

64/64超过32/64或其他任何可以保证完全切换的性能优势吗?我在这做过任何错误的假设吗?

Che*_*eso 37

在64位vevrsus 32位上运行IIS的唯一优势是允许访问更大的内存地址空间.

如果您正在进行正常的ASPX页面处理,那么您可能不需要从任何单个进程处理超过4gb的内容.假设您在32位模式下运行,并且在同一台计算机上具有多个工作进程的Web园.在这种情况下,每个进程最多可以处理4GB.

执行缓存时可以获得最大的优势.64位进程可以维护一个巨大的内存缓存(假设您有32GB或更多的RAM来支持它),以允许您在Web服务器上缓存复杂的页面内容或数据.当数据生成成本高于检索数据时,这允许性能增益 - 例如,如果数据是精心设计的形式(比如蒙特卡罗模拟的结果),或者数据是否存在于机外和网络中IO时间比缓存检索时间贵得多.

如果您不使用缓存,那么64位IIS无法帮助您.每次查找都需要64位指针,这会使一切变慢.

64位服务器在用于SQL Server或其他数据管理服务器(比如企业电子邮件服务器,如Exchange)等数据库时,比处理服务器(如IIS或其管理的工作进程)更有效.使用64位地址空间,需要管理数据的服务器可以将更多的数据与索引和其他缓存一起保存在内存中.当查询进入时,这节省了磁盘IO时间和精细化时间.大多数Web应用程序不需要从单个进程处理超过4gb的内容.


也许是一个有用的比喻:在运输中,大型SUV就像64位机器,而普通的紧凑型乘用车就像32位服务器.您可以在大型SUV中携带更多东西,它具有更大的牵引能力,可容纳8人,GVWR为8600磅.但是,尽管如此,你付出了代价.卡车比较重.它使用更多的燃料.如果您只携带2人和一个行李袋,您不需要SUV.使用较小的车辆你会更好.它可以更快,更有效.

  • 你的比喻是有缺陷的.在64位上,X64进程的执行速度比thunked 32位快.尤其是在较老的IA64处理器上,其中存在明显的线程开销. (2认同)

The*_*urf 5

我不认为你做出了任何错误的假设。但我想说,不,您概述的任何场景之间可能没有性能差异。Windows 上的 32 位 64 位运行不会受到惩罚。64 on 64 可能会带来一些轻微的性能提升,但这是值得怀疑的。32 位进程可能会节省一些内存,但这很可能会被运行该进程所需的 thunking 所抵消。

唯一的好处是你提到的 DLL 问题。这也可能是升级的一个原因(如果您有需要使用的特定 64 位版本)。

  • 回复:*64 on 64 可能会带来一些轻微的性能提升,但这是值得怀疑的。*仅使用 64 位并没有神奇的性能提升。事实上,如果您处于 64 位模式,则需要支付每条指令的税费。每次指针移动都是 64 位宽,每次比较都更宽。这些东西比 32 位对应的东西可能需要更多的 cpu 周期。仅当您的应用需要访问大于 4GB 的内存空间时,64 位才对性能有意义。在其他情况下,成本更高。 (4认同)
  • http://learn.iis.net/page.aspx/201/32-bit-mode-worker-processes/ 仅供参考 http://blogs.msdn.com/b/cenkiscan/archive/2012/06/20/ iis 最佳实践.aspx (4认同)