Problem: 尽管有足够的内存ArcGIS Server不能启动更多的服务实例

文章编号 : 35532
软件: ArcGIS Server 9.1,9.2,9.3, 9.3.1
操作系统: Windows XP, 2003Server, Vista
已邀请:

EsriSupport

赞同来自:

错误信息:
ArcGIS Server在Windows XP上不能启动60个以上的服务实例,在Windows Server 2003上不能启动120个以上的服务实例。
原因: 高独立性的ArcGIS Server服务实例使用Windows操作系统资源是有限制的。对于Windows Server 2003,当启动120个ArcSOC.exe进程时这些资源就耗尽了。对于Windows XP系统,这个数字大约是60。Windows 7和Windows Server 2008R2没有这样的问题。

解决方法:
有三个解决办法。第一种方法是把服务配置成低独立性模式;第二种方法是架构上的,建议配置多个SOC而不是在一台SOC上启动太多的实例;第三种方法要编辑注册表,增加interactive desktop heap的大小。 • 低独立性解决方案: 考虑把ArcGIS Server的服务配置成低独立性的运行模式。这样多个服务实例可以运行在一个ArcSOC.exe进程里。由于这个问题是和ArcSOC.exe进程总数有关,让多个实例运行在一个ArcOSC.exe进程里可以增加ArcGIS Server总的服务实例数。 这种方法唯一的缺点是性能比高独立性要差一些。 如何配置服务以低独立性模式运行请参考ArcGIS Server的在线帮助。 • 架构方案 ESRI的性能测试表明,单个CPU核可以支持同时处理的服务实例数虽然由于服务类型不同会有差别,但几乎不会超过4个。这就是说即使ArcGIS Server的SOC机器配置很高,也只能支持CPU核4倍的服务实例数。比如,一台16核32G内存的机器可以支持64个同时执行的实例。这并不是说只有64个用户,因为用户通常不会同时使用一个服务实例并毫无间隔地不断发送请求。 既然这样,即使服务器配置很高,也没有理由配置太多的服务实例数。ArcGIS Server管理员应该把实例数最小值设成0,在Windows XP和Windows Server 2003的机器上把Capacity设为小于60或120;并且让内置的pool-shrinking算法来优化可用的实例数。设置了最小实例数和capacity参数以后,ArcGIS Server可以同时运行许多(数百)个服务而不至于受到Windows进程的限制。 如何设置服务的最小实例数以及设置机器的capaticy请参考ArcGIS Server的在线帮助。 • 注册表方案 (只针对Windows Vista) 要获取更多信息,请参考以下MSDN博客:The default interactive desktop heap size has been increased on 32-bit Vista SP1. http://blogs.msdn.com/ntdebugg ... .aspx 同时增加SessionViewSpace 有风险的注册表方案: 按照微软技术支持文章KB184802的“Cause 2”步骤减少the third Shared Section的值(限制是128K)。这篇技术文章的链接可以参考文章最后的相关资源。 最好的情况下,这个办法可以把进程的数扩大四倍到480左右。之所以有风险,是因为这样做可能会降低服务器上其他进程的功能。如果机器上只有ArcGIS Server的SOC进程,这个方案是可以接受的。但是这个修改会影响机器上的所有进程,如果一个进程使用的堆内存太小不足以运行菜单、窗口、字符串等,可能会发生不可预料的结果。


创建时间:2008-09-24
最近更新: 2010-08-17


原文链接
http://support.esrichina.com.cn/2008/0924/778.html

要回复问题请先登录注册