如何解决由于服务过多或异常导致ArcGIS Server 无法正常运行的问题
2011-01-17 15:44
901 查看
一、问题描述
最近有一个用户向笔者反馈了一个ArcGIS Server使用时发现的一个问题,问题的描述大概是这样的:安装ArcGIS Server的服务器的配置是CPU为8路,内存为16GB,该服务器上共建了近30个服务。服务建立好后,ArcGIS Server的Manager和服务的使用都没有问题,可当服务器重启后,发现ArcGIS Server无法启动。而当手动在Windows服务管理器中启动Server的那三个服务后,系统的CPU占用率达100%!整个服务器直接处于死机状态。并且,此时还无法通过ArcGIS Server Manager或Catalog连接到Server。
二、问题分析
这个问题的起因主要是由于该服务器上Server中发布的服务过多的缘故。对于Server上发布的每个服务,其至少会启动一个SOC进程,而按照ArcGIS官方建议每核启动2 个SOC实例,每个SOC实例预留100-400M内存。
三、解决方法
要解决这个问题最根本的方法便是增加ArcGIS Server 的集群,或停掉暂时不用的服务。而在这个案例中最棘手的部分便是,一旦ArcGIS Server服务启动,整个操作系统便失去响应,同时使用 ArcGIS Server Manager和Catalog也无法访问Server。因此,使用常规方法来停掉服务是不可能的。好在ArcGIS Server 针对高级管理员用户提供了另外一种手段来解决这个问题——ArcGIS Server的服务的配置信息均通过xml存储在Server的安装目录下(%ArcGIS%\Server10.0\server\user\cfg),其后缀名为.cfg,并且一个服务对应一个.cfg文件。
在cfg文件中存储了其对应服务的全部配置信息,当ArcGIS Server服务启动时,Server会自动扫描该目录,并依据各.cfg文件中的配置信息启动相应的服务。.cfg文件内容如下(不同类型服务,其xml格式不同):
同时在该配置文件中还存在一个名为<StartupType>的配置项,当该项的值为automatic时,Server会自动启动该服务;而当其值为manual时,Server则默认不启动该服务。因此,要解决以上问题,我们需要做的就是将该目录下的所有.cfg文件中的StartupType的值全部修改为manual(默认为automatic)。然后再重新启动ArcGIS Server的三个服务,最后当Server正常启动后,我们便可以通过ArcGIS Server manager来对服务进行维护了。重启ArcGIS Server 脚本如下:
最近有一个用户向笔者反馈了一个ArcGIS Server使用时发现的一个问题,问题的描述大概是这样的:安装ArcGIS Server的服务器的配置是CPU为8路,内存为16GB,该服务器上共建了近30个服务。服务建立好后,ArcGIS Server的Manager和服务的使用都没有问题,可当服务器重启后,发现ArcGIS Server无法启动。而当手动在Windows服务管理器中启动Server的那三个服务后,系统的CPU占用率达100%!整个服务器直接处于死机状态。并且,此时还无法通过ArcGIS Server Manager或Catalog连接到Server。
二、问题分析
这个问题的起因主要是由于该服务器上Server中发布的服务过多的缘故。对于Server上发布的每个服务,其至少会启动一个SOC进程,而按照ArcGIS官方建议每核启动2 个SOC实例,每个SOC实例预留100-400M内存。
三、解决方法
要解决这个问题最根本的方法便是增加ArcGIS Server 的集群,或停掉暂时不用的服务。而在这个案例中最棘手的部分便是,一旦ArcGIS Server服务启动,整个操作系统便失去响应,同时使用 ArcGIS Server Manager和Catalog也无法访问Server。因此,使用常规方法来停掉服务是不可能的。好在ArcGIS Server 针对高级管理员用户提供了另外一种手段来解决这个问题——ArcGIS Server的服务的配置信息均通过xml存储在Server的安装目录下(%ArcGIS%\Server10.0\server\user\cfg),其后缀名为.cfg,并且一个服务对应一个.cfg文件。
在cfg文件中存储了其对应服务的全部配置信息,当ArcGIS Server服务启动时,Server会自动扫描该目录,并依据各.cfg文件中的配置信息启动相应的服务。.cfg文件内容如下(不同类型服务,其xml格式不同):
<ServerObjectConfiguration> <Description></Description> <Properties> </Properties> <Recycling> <Start>00:00</Start> <Interval>86400</Interval> </Recycling> <Info> <WebEnabled>true</WebEnabled> </Info> <IsPooled>true</IsPooled> <MinInstances>1</MinInstances> <MaxInstances>2</MaxInstances> <InstancesPerContainer>1</InstancesPerContainer> <WaitTimeout>60</WaitTimeout> <IdleTimeout>1800</IdleTimeout> <UsageTimeout>600</UsageTimeout> <CleanupTimeout>30</CleanupTimeout> <ServiceKeepAliveInterval>-1</ServiceKeepAliveInterval> <StartupTimeout>300</StartupTimeout> <Isolation>high</Isolation> <StartupType>manual</StartupType> </ServerObjectConfiguration>
同时在该配置文件中还存在一个名为<StartupType>的配置项,当该项的值为automatic时,Server会自动启动该服务;而当其值为manual时,Server则默认不启动该服务。因此,要解决以上问题,我们需要做的就是将该目录下的所有.cfg文件中的StartupType的值全部修改为manual(默认为automatic)。然后再重新启动ArcGIS Server的三个服务,最后当Server正常启动后,我们便可以通过ArcGIS Server manager来对服务进行维护了。重启ArcGIS Server 脚本如下:
@echo ***********************开始关闭ArcGIS Server服务*********************** net stop ArcSOCMonitor /y net stop "ArcGIS Server Manager Service" @echo ***********************开始启动ArcGIS Server服务*********************** net start "ArcGIS Server Manager Service" net start ArcServerObjectManager
相关文章推荐
- 由于NFS服务没有启动,导致XenServer 6.5无法连接NAS存储问题的解决方法
- 解决由于升级的Win10周年版本后Oracle VM VirtualBox无法运行导致的eNSP V390里面的路由器和防火墙等设备无法启动的问题(错误代码40)
- 解决由于安装了arcgis9.3导致windows modules installer服务无法启动的问题
- 连接数过多导致服务无法正常运行
- Windows Server 2003 下Msdtc不通导致工作流Windows Workflow Foundation无法正常运行问题的解决
- 解决由于设置BatchExecutor批量执行器而导致无法获取自增Id的问题
- 解决防火墙因存储空间被过多的更新包占用导致无法升级的问题
- eclipse在异常关闭后,导致无法启动workspace问题的解决
- 如何解决win7中搜索服务无法启动的问题
- 解决进程间共享内存,由于某个进程异常退出导致死锁问题
- 压测xx业务数据库资源大量等待,存在表锁问题,导致数据库无法正常执行解决办法
- 服务器端口号占用导致WEB服务无法启动的解决问题
- 解决由于设置BatchExecutor批量执行器而导致无法获取自增Id的问题
- 一个由于文件权限问题导致的SQL Server 2008 无法正常启动的问题
- 如何解决一些控件无法运行在高版本的Chrome下运行的问题
- vmware异常关闭后导致虚拟机无法打开问题解决办法
- [原] VS新添加WebApplication项目,无法运行,请求帮助,问题如何解决
- 基于WEB服务器导致消息中心各组件之间无法正常工作的问题分析与解决
- “除非Microsoft FTP 服务(FTPSVC)正在运行,否则无法启动FTP站点。服务目前已停止”问题解决
- 解决:无法终止无法挂起BizTalk正在运行的服务实例的问题