`
Virgo_S
  • 浏览: 1153541 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

任务管理器中arcsom.exe和arcsoc.exe的个数问题

阅读更多

安装了ArcGIS Server的机器,当打开任务管理器的时候,会看到里面有arcsom.exe和arcsoc.exe进程,但它们的数量具体是如何决定的呢?以下的分析仅针对单机配置的情况(假定所有部件都安装在一台机器上),对于分布式的安装,可以此类推。
        GIS Server是由一个SOM(Server Object Manager)和若干个SOC(Server Object Container)机器组成。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和non pooled两种。对于pooled service来说,一个用户(或者应用程序)请求该服务时,会随机获得一个该服务已经创建的instance的引用,由该instance对请求做出响应;请求完成后,用户会立即释放该instance的引用,使其返回假想的instance pool中,用户发出另一个请求,重复上面的过程。如果是non pooled service,用户第一次发出请求时,也会随机获得该service已经创建的一个instance引用,但请求处理完成后,该用户继续持有对该 instance的引用,直到用户断开与服务器的连接(结束程序),该instance会被销毁,然后SOM会创建一个新的instance来维持数量。对于pooled service,又有low isolation和high isolation两种。high isolation是指service的每个instance都会独占一个进程(arcsoc.exe),low isolation则是指一个进程内可保有多个(默认是8哥,最多可达256个)instance(就是所谓的多线程)。low isolation的好处是可以启动相对少的arcsoc.exe来维持同样数量的instance,节约服务器的内存资源;但如果一个 arcsoc.exe崩溃,那么里面的所有instance都会被销毁,即使用户正在使用它们。high isolation的优缺点则与之相反。一般来说,对于pooled service使用high isolation设置。non pooled service的instance总是独占一个进程(同high isolation)。另外可以指定一个服务的最小和最大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)。可以看出,对于经常不用的服务,我们可以将它设置成手动启动,一来节约内存,二来加快机器启动速度。

分享到:
评论
2 楼 Virgo_S 2011-01-07  
这个根据不同的需求,有不同的优化原则,楼上的想知道,可以把需求和硬件环境发给我,我帮你做一个解决方案
1 楼 dingherry 2010-12-02  
具体应该如何优化呢?

相关推荐

    输入法调整工具.exe

    另外,文件包中的两个exe文件“输入法调整.exe”和“imetools.exe”,分别代表主程序和辅助工具或特定功能的实现。这种结构设计使得软件具有良好的模块化,易于维护和升级。 综合以上分析,可以看出,“输入法调整...

    js前端浏览器打开本地exe程序的demo

    2. 提高用户体验:通过将常用的应用程序集成到网页中,用户可以方便地在浏览器中直接打开所需的应用程序,无需繁琐的寻找和启动过程,提高了用户的使用体验。 3. 跨平台兼容性:由于该功能是基于浏览器实现的,因此...

    分割文件.exe

    可选择分割文件,类型分割文件的大小,分割文件的个数分割txt文件分割txt文件分割txt文件分割txt文件

    禅道任务创建规则规范说明.docx

    禅道的任务查看功能提供了多种视图,如所有任务、未关闭任务、指派给我的任务和已延期任务等,帮助管理者快速定位任务状态。通过这些视图,团队成员可以实时了解任务进度,及时调整工作安排。 5. **任务执行** ...

    检查BOM V1.3.exe

    该工具可有效判断一个物料清单里是否有位号重复,重复多少个;还可判断出位号的个数是否与数量一致。是检查BOM表的好帮手。

    nginx+php-cgi 进程守护工具

    nginx_dir => 填写 nginx.exe 所在目录 php_cgi_dir => 填写 php-cgi.exe 所在目录 php_cgi_start => 填写 php-cgi 启动参数及端口 php_cgi_num => 填写同时运行 php-cgi 的个数 其他使用默认配置即可 工具简陋,...

    求二进制数中1的个数.pdf

    综上所述,求解二进制数中1的个数问题可以通过多种方法解决,每种方法都有其特点和适用场景。从最基本的整数除法到高效的位操作,再到针对特定输入范围的优化方法,每一种方法都在不同程度上体现了算法设计的思想。...

    Delphi获取文字中英文字母的个数..rar

    在本案例中,我们关注的是获取一个字符串中英文字母(包括大写和小写字母)的个数。以下是对这个任务的详细阐述: 1. **字符串基本操作**:在Delphi中,字符串通常表示为`string`类型,它是一个Unicode字符串,可以...

    1067整数的个数.cpp

    1067整数的个数.cpp

    汇编语言程序设计基本命令[整理].pdf

    例如,使用lodsb和and al, al指令来检查字符中的"1"的个数,并使得每一字符包括校验位。 三、汇编语言程序的汇编 在建立汇编语言源程序以后,需要用汇编程序ASM.EXE(或者MASM.EXE)进行汇编。汇编过程中,汇编...

    bin2c.zeu.v5.exe

    可将任意文件转换为c或h文件, 可设置数组名称和每行的个数,可显示预览,方便拷贝bin文件转换内容, 可指定输入文件和输出文件路径,方便vs或mdk(keil)预编译

    统计图形对象的个数.xlsx源码EXCEL VBA宏编程xlsx实例代码下载

    统计图形对象的个数.xlsx源码EXCEL VBA宏编程xlsx实例代码下载统计图形对象的个数.xlsx源码EXCEL VBA宏编程xlsx实例代码下载统计图形对象的个数.xlsx源码EXCEL VBA宏编程xlsx实例代码下载统计图形对象的个数.xlsx...

    Jquery练习1:统计包含“a”或“A”的字符串的个数.zip

    在本实践项目中,我们关注的是使用jQuery来统计一个字符串中包含特定字符“a”或“A”的个数。jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理以及Ajax交互等任务。在这个练习中,我们将不直接用到...

    矩阵最优连乘问题 计算方法习题 适合学生习题参考源程序、生成结果.exe

    每行为一组连乘矩阵的各维长度,行中第一个数字是连乘矩阵的个数n,n≤100,后面是n+1个维长。 矩阵个数为0表示输入结束。 Output 对每行输入,计算最优计算顺序,并以括号形式将计算表达式输出,各矩阵用A0, A1,...

    1102 与指定数字相同的数的个数.cpp

    1102:与指定数字相同的数的个数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 33228 通过数: 21033 【题目描述】 输出一个整数序列中与指定数字相同的数的个数。 【输入】 输入包含三行: 第一行为N,表示整数...

    1068:与指定数字相同的数的个数.cpp

    1068:与指定数字相同的数的个数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 28644 通过数: 20305 【题目描述】 输出一个整数序列中与指定数字相同的数的个数。输入包含2行:第1行为N和m,表示整数序列的长度(N...

    java代码-使用集合ArrayList对字符串进行存储和管理 任务: 1.定义ArrayList对象 2.存储学科名称,见运行效果图 3.输出集合中元素的个数 4.遍历输出集合中的所有元素

    在这个Java代码示例中,我们将学习如何使用ArrayList来存储和管理字符串。 首先,我们需要导入必要的库,即`java.util.ArrayList`,它包含了ArrayList类的定义: ```java import java.util.ArrayList; ``` **1. ...

    快速搜索位图索引中1的个数.rar

    位图索引是一种在数据库和计算机科学中广泛使用的数据结构,尤其在大数据处理和搜索引擎优化中扮演着重要角色。这个“快速搜索位图索引中1的个数”主题主要聚焦于如何高效地统计位图中代表“1”的位的数量。位图索引...

    统计3行3列二维数组中每行偶数的个数.cpp

    统计3行3列二维数组中每行偶数的个数.cpp

    二进制中1的个数.md

    二进制中1的个数.md

Global site tag (gtag.js) - Google Analytics