任务管理器中arcsom.exe和arcsoc.exe的个数问题
转载链接:http://blog.newnaw.com/?p=78
安装了ArcGIS Server的机器,当打开任务管理器的时候,会看到里面有arcsom.exe和arcsoc.exe进程,但它们的数量具体是如何决定的呢?以下的分析仅针对单机配置的情况(假定所有部件都安装在一台机器上),对于分布式的安装,可以此类推。
GISServer是由一个SOM(Server Object Manager)和若干个SOC(Server ObjectContainer)机器组成。SOM会在机器里以arcgissom账户启动一个ArcSOM.exe的进程,这个进程负责管理(启动和停止)其他SOC进程(ArcSOC.exe),SOC进程虽然是由SOM启动,但是以arcgissoc 账户运行的。arcsom.exe启动时,会自动启动两个arcsoc.exe,一个用于记录AGS的日志,一个用于清空特定的工作目录。这两个arcsoc.exe在任务管理器中可以根据所占用的内存数与其他arcsoc.exe区分开来,如图,占用内存较少的两个arcsoc.exe便是由SOM进程自动启动的,而其他的arcsoc.exe则是由具体service启动的。

插入一些概念:
用户请求一个service时,是和该service的一个instance打交道。service有pooled和 nonpooled两种。
对于pooled service来说,一个用户(或者应用程序)请求该服务时,会随机获得一个该服务已经创建的instance 的引用,由该instance对请求做出响应;请求完成后,用户会立即释放该instance的引用,使其返回假想的instance pool中,用户发出另一个请求,重复上面的过程。
如果是non pooledservice,用户第一次发出请求时,也会随机获得该service已经创建的一个instance引用,但请求处理完成后,该用户继续持有对该instance的引用,直到用户断开与服务器的连接(结束程序),该instance会被销毁,然后SOM会创建一个新的instance来维持数量。
对于pooled service,又有low isolation和high isolation两种。
highisolation是指service的每个instance都会独占一个进程(arcsoc.exe),lowisolation则是指一个进程内可保有多个(默认是8个,最多可达256个)instance(就是所谓的多线程)。lowisolation的好处是可以启动相对少的arcsoc.exe来维持同样数量的instance,节约服务器的内存资源;但如果一个 arcsoc.exe崩溃,那么里面的所有instance都会被销毁,即使用户正在使用它们。highisolation的优缺点则与之相反。一般来说,对于pooled
service使用high isolation设置。non pooledservice的instance总是独占一个进程(同highisolation)。另外可以指定一个服务的最小和最大instance数目,服务启动时会自动创建最小数目的instance等待调用;当创建的instance数目达到最大数量时,所有的请求都会进入等待队列。
至此,可以来分析一个具体的案例了。现在机器上总共有2个服务:
World:pooled,low isolation(8 instance per process),min-instance:9, max-instance:16 ,随机启动
China: non pooled ,min-instance:2, max-instance:4,手动启动。
开机,SOM启动一个arcsom.exe,随后启动两个arcsoc.exe;World服务启动,创建9个instance,其中8个 instance公用一个arcsoc.exe,剩下一个instance启动另外一个arcsoc.exe。此时机器中共有1个 arcsom.exe,4个arcsoc.exe。此时手动启动China服务,创建2个instance,每个instance会启动一个 arcsoc.exe。此时,机器中共有1个arcsom.exe,6个arcsoc.exe。
观察统计可知,最小instance数量为1的服务启动时间平均在17秒左右(cpu:Intel T7200)。可以看出,对于经常不用的服务,我们可以将它设置成手动启动,一来节约内存,二来加快机器启动速度。
任务管理器中arcsom.exe和arcsoc.exe的个数问题的更多相关文章
- 排错技能:任务管理器中追踪某w3wp.exe是哪个IIS站点的application pool
如果Windows的任务管理器中发现某个w3wp.exe占用了100%CPU,那我们就要揪出这是那个网站的application pool在作怪, 首先,每个站点一定要单独使用各自的applicati ...
- [转]C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件
原文:http://www.crifan.com/csharp_call_explorer_to_open_destinate_folder_and_select_specific_file/ C#中 ...
- visual 2008中error PRJ0003 : 生成 cmd.exe 时出错
visual 2008中error PRJ0003 : 生成 cmd.exe 时出错”, 和vs2008 sp1没关系 解决方案:工具—>选项—>项目和解决方案—>VC++目录, ...
- 在InstallShield中发布单一的Setup.exe文件
原文:在InstallShield中发布单一的Setup.exe文件 InstallShield默认的Release模式下,生成了一个setup.exe文件,一个msi文件,以及一些其它的杂项文件. ...
- tomcat的bin目录中startup.bat/tomcat.6.exe/tomcat6w.exe区别
一.tomcat6.exe 与 startup.bat的区别 1.两者都可以用于启动Tomcat tomcat6.exe则是必须将tomcat注册Windows服务之后才可以用于启动tomcat服务; ...
- IDED中配置SVN没有svn.exe解决办法
首先在idea中配置svn时
- windows中通过bat批处理打开exe文件
1.想要运行的程序: C:\Program Files\Windows Media Player\wmplayer.exe C:\Program Files\Haihaisoft Universal ...
- Instsrv.exe和Srvany.exe的使用方法
要把应用程序添加为服务,你需要两个小软件:Instsrv.exe和Srvany.exe.Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行.这两个软件都包含 ...
- 解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案
SQL Server是如何使用内存 最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉.所以一般我们在看sta ...
随机推荐
- vulnhub-Os-hackNos-3
vulnhub-Os-hackNos-3 nmap 192.168.114.0/24 查看存活主机,发现192.168.114.142. 具体探究: 发现80和22端口是开放的. dirb没扫出来啥, ...
- Spark Extracting,transforming,selecting features
Spark(3) - Extracting, transforming, selecting features 官方文档链接:https://spark.apache.org/docs/2.2.0/m ...
- nginx+tomcat集群方法
下载地址:wget http://nginx.org/download/nginx-1.16.1.tar.gz 解压:tar -zxvf 预编译 nginx+tomcat集群方法: 进入nginx配置 ...
- golang开发:select多路选择
select 是 Golang 中的一个控制结构,语法上类似于switch 语句,只不过select是用于 goroutine 间通信的 ,每个 case 必须是一个通信操作,要么是发送要么是接收,s ...
- Codeforces Round #673 (Div. 2)
[Codeforces Round #673 (Div. 2) ] 题目链接# A. Copy-paste 思路: 贪心的策略.每次只加上最小的就可以了 #include<bits/stdc++ ...
- JUC并发编程--AQS
转自: https://www.jianshu.com/p/d8eeb31bee5c 前言 在java.util.concurrent.locks包中有很多Lock的实现类,常用的有Reentrant ...
- 搭建 Spring 源码阅读环境
前言 有一个Spring源码阅读环境是学习Spring的基础.笔者借鉴了网上很多搭建环境的方法,也尝试了很多,接下来总结两种个人认为比较简便实用的方法.读者可根据自己的需要自行选择. 方法一:搭建基础 ...
- Ajax接收int类型乱码
在Ajax返回值类型是 "text" 的时候,接收int类型时可能会出现ၧ 解决方法:将int转为String即可 int money =100; String s = Integ ...
- python单元测试框架pytest
首先祝大家国庆节日快乐,这个假期因为我老婆要考注会,我也跟着天天去图书馆学了几天,学习的感觉还是非常不错的,这是一篇总结. 这篇博客准备讲解一下pytest测试框架,这个框架是当前最流行的python ...
- 编程体系结构(06):Java面向对象
本文源码:GitHub·点这里 || GitEE·点这里 一.基础概念 1.面向对象概念 面向对象编程的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一 ...