首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在64位操作系统上以32位和64位运行IIS的优缺点是什么?

问在64位操作系统上以32位和64位运行IIS的优缺点是什么?
EN

Stack Overflow用户
提问于 2009-02-03 16:24:26
回答 5查看 25.9K关注 0票数 39

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

与32/32相比,32/64 ( IIS /server)的主要优势似乎是每个IIS进程的内存最高可达4 4gb。

我期望32/64比64/64的优点似乎是更容易访问遗留的32位进程内DLL(我们仍然有一个来自合作伙伴供应商的DLL,我们不能立即离开),并且对于相同的代码,如果内存指针较小,可能会占用较小的内存空间。

与32/64相比,64/64是否有性能优势,或者是否有任何其他优势可以保证现在完全切换?我在这里做了什么错误的假设吗?

EN

回答 5

Stack Overflow用户

发布于 2010-01-14 10:02:29

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

如果您正在进行普通的ASPX页面处理,那么您很可能不需要从任何单个进程寻址超过4 4gb的地址。假设你在32位模式下运行网络花园,在同一台机器上有多个工作进程。在这种情况下,每个进程最多可以寻址4 4gb。

当您执行缓存时,最大的优势就来了。64位进程可以维护一个巨大的内存缓存(假设您有32 on或更多的RAM来支持它),以允许您在web服务器上缓存复杂的页面内容或数据。当生成数据的成本比检索数据的成本高时,这可以提高性能-例如,如果数据是精心设计的格式(假设是蒙特卡洛模拟的结果),或者如果数据驻留在现成的设备上,并且网络IO时间比缓存检索时间要昂贵得多。

如果您不使用缓存,那么64位IIS将不会为您提供帮助。每次查找都需要64位指针,这会使一切变得更慢。

64位服务器在用于SQL Server之类的数据库或其他数据管理服务器(比如说Exchange之类的企业电子邮件服务器)时,比用于处理服务器(如IIS或它管理的工作进程)要有效得多。使用64位地址空间,需要管理数据的服务器可以在内存中保留更多的数据,以及索引和其他缓存。这节省了磁盘IO时间和查询传入时的处理时间。大多数Web应用程序不需要在单个进程中寻址超过4 4gb。

也许有一个有用的比喻:在交通运输中,大型SUV就像64位的机器,而普通的紧凑型乘用车就像32位的服务器。你可以在一辆大型SUV中携带更多的东西,而且它有更大的拖曳能力,可容纳8人,以及a GVWR of 8600 lbs。但所有这些,你都要付出代价。卡车更重了。它使用更多的燃料。如果你只有两个人和一个行李袋,你不需要一辆SUV。你坐小点的车会更好。它可以更快、更高效。

票数 37
EN

Stack Overflow用户

发布于 2009-02-03 17:13:54

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

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

票数 4
EN

Stack Overflow用户

发布于 2009-07-14 05:51:44

我有过这样的经历,从32位Windows2003Server迁移到64位Windows2003Server,同时运行IIS6和ASP.NET 3.5网站的性能是不可接受的。

64位服务器的运行时间明显比32位服务器慢2秒。

在将IIS 6切换为作为32位工作进程运行后,性能又一次相当于32位工作进程。

我还没有验证它,但我认为它可能只适用于IIS6 win2k3,因为我用IIS7 x64 (Vista)和一个64位的IIS工作进程进行的测试似乎执行得很好。

切换到32位进程的过程非常简单。以下是包含支持详细信息的知识库文章:http://support.microsoft.com/kb/894435/en-us

ASP.NET 2.0,32位版本要运行32位版本的ASP.NET 2.0,请执行以下步骤:

  1. 单击开始,单击运行,键入cmd,然后单击确定。
  2. 键入以下命令以启用32位模式: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
  3. 键入以下命令以安装ASP.NET 2.0 (32位)版本,并在IIS根和以下位置安装脚本映射:%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
  4. 确保ASP.NET版本2.0.50727的状态(32位)在互联网信息服务管理器的网站服务扩展列表中设置为允许。

有关重新设置为64位的信息,请参阅知识库文章。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/507820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档