【转载】ArcGIS Server 性能因子(三)

ArcGIS Server部署方案

ArcGIS Server 具有灵活的部署方式,每种步骤方式都有其优缺点。我们下面来讨论几种常见的部署方案。

1. 单机模式:

特点:

1) 安装简单

2) 数据可以是本地的 File GDB/Shp

3) 适合小型应用系统及开发环境

2. 多机模式I

优点:

1) 吞吐量大

2) 单一的服务配置

3) 适合于高可用大型应用系统

缺点:

1) 网络瓶颈

2) 必须复制安全

3. 多机模式II

优点:

1) 单一的服务配置

2) 单一的安全配置

3) 适合于高可用大型应用系统

缺点:

1) 网络瓶颈

2) 磁盘瓶颈

4. 单机集群模式

优点:

1) 高可用性

2) 较少的瓶颈

3) 灵活扩展

4) 适合于高可用的大型应用系统

缺点:

1) 最少吞吐量 (SOC不能共享使用,依赖单机性能)

2) 必须复制配置及安全

3) 可能要考虑Session同步

至于选择哪种部署方式,完全取决于应用及负载的需求。

【转载】ArcGIS Server 性能因子(二)

ArcGIS Server 构架

下面我们来讨论一下ArcGIS的构架。由于ArcGIS Server构架部署的灵活性,所以,我们可以调整框架内的每一部分提高性能:

1. SOM

主要负责请求任务分配、权限认证等工作。

我们可以通过SOM集群来提高其吞吐量。

2. SOC

主要负责任务的执行,我们可以通过调节实例数(instances)提高并发处理能力。

1) 建议每核启动2-4 个SOC实例,每个SOC实例预留100-400M内存。

2) 使用池式服务发布用于浏览的地图服务

3) 使用非池式服务发布用于编辑和交互式处理的地图服务。

3. 服务(Services)

ArcGIS Server 包含了丰富的地图服务(如:MapService、GPService、ImageService等),我们下面主要对MapService进行讨论:

地图可以包括动态图层和静态图层(缓存):动态图层可以理解为经常变化的数据,如:电力网络、水管网等;静态图层可以理解为不常变化的数据,如:土地利用、路网、基础地形数据等。分类原则如下:分类是主观的,由应用需求决定

对于这个地图服务有以下几点建议:

1) 能使用缓存图层,尽量使用缓存图层

2) 对于缓存图层,在不影响视觉效果的和应用需求的前提下,尽量减少其图片尺寸。

3) 动态图层应根据用户及应用需求权衡好速度和质量的关系。

4) 使用MxdPerfStat 调优工具测试MXD文档的性能

5) 使用ArcMap 9.3.1 Analyzer Tool测试MXD文档的性能

6) 使用快速的MSD地图文档

7) 使用正确的坐标系

8) 使用高效的地图符号

9) 使用Annotation替代Label

10) 避免使用maplex

11) 避免使用跨数据库的joins

12) 使用有索引的字段进行查询及过滤

13) 启动简单图层 (由用户控制其它的图层显示)

14) 使用字段可视性 (隐藏不需要的属性)

15) 避免使用JPEG2000等(压缩过的)栅格数据类型

16) 按照比例尺控制数据的显示及隐藏

17) 在所有比例尺中显示相似的要素数

18) 避免使用复杂的几何类型

19) 定期执行版本维护(保持版本树小,压缩等)

【转载】ArcGIS Server 性能因子(一)

ArcGIS Server 概述

ArcGIS Server是功能强大的基于服务器的GIS产品,用于构建集中管理的、支持多用户的、具备高级GIS功能的企业级GIS应用与服务,如:空间数据管理、二维三维地图可视化、数据编辑、空间分析等即拿即用的应用和类型丰富的服务。

ArcGIS Server是用户创建工作组、部门和企业级GIS应用的平台,通过ArcGIS Server创建集中管理的、支持多用户的、提供丰富的GIS功能、并且满足工业标准的GIS应用。

ArcGIS Server提供广泛的基于Web的GIS服务,以支持在分布式环境下实现地理数据管理、制图、地理处理、空间分析、编辑和其它的GIS功能。

ArcGIS Server 系统性能因子

ArcGIS Server 系统我们主要从以下几个方面讨论其性能因子及其优化策略:

机器硬件环境

1. CPU

CPU的速度、核数及运算能力都是比较重要的性能因子。对于CPU的选择和规划使用主要有以下几点建议:

1) 对于Map Servcie 应选择整数运算性能高的CPU。

2) 对于Gp Service 应选择浮点运算性能高的CPU。

3) 建议每核启动2-4 个SOC实例,每个SOC实例预留100-400M内存。

2. 网络带宽及交换能力

网络的瓶颈也是影响系统性能的一个重要因素。对此有以下几点建议:

1) 使用最少百兆网的网络环境。

2) 尽量减少数据的网络交互,如上传、下载等。

3. 内存

内存和CPU一样,也是主要制约SOC运行效率的因素。对此有以下几点建议:

1) 根据系统的构架设计(SOC),提供足够大小内存。

2) 在条件允许的情况下,尽量选择性能较好的内存。

4. 存储设备(I/O)

存储设备的访问速度及效率已经成为一个非常重要的性能因子(在一些大型的数据库系统也是如此。如DB2、Oracle).对于I/O部分有以下建议:

1) 尽量选择高速率、高并发、高性能的磁盘,有可能的化可以考虑磁盘柜。

2) 尽量使用本地路径访问,避免使用UNC路径。

3) 尽量减少磁盘的I/O访问,可考虑使用内存缓存技术。

数据源

不同的数据源在不同的环境下的性能和

表现都有不同。我们平常主要用到矢量数据(Vector)和栅格数据(Raster)两类数据:

1. 矢量数据(Vector):

可以存储在DBMS(SDE), FileGDB, Shapefile, SDC等格式中,存储的类型可以是ESRI ST_Geometry, Oracle SDO, SQL Server Geometry

2. 栅格数据(Raster):

可以存储在Image Server, FileGDB, DBMS(SDE), SDC 等格式中,压缩类型可以是ESRI LZ77, JPEG, PNG

数据源的选择主要根据系统的需求而定。有以下几点建议供您参考:

1) 不论使用哪种数据源,尽量避免使用UNC路径。

2) 在单机模式下,尽量使用SDE Server访问。

        3) 在集群模式下,建议使用直连模式(Direct Connect)访问SDE数据。

arcgis server for .Net图文安装详解

一、ArcGIS Server安装概述

ArcGIS Server安装过程包括两个部分:安装(installation)和安装后(post installation)设置。为了完成ArcGIS Server的安装,需要使用Windows操作系统工具手动设置一些步骤:

²         setup过程需要你决定安装哪些功能部件?setup程序将安装这些部件需要的文件。

²         后安装是用来完成ArcGIS Server安装过程的。在后安装过程中,将依赖于你选择安装的部件,你将能够配置ArcGIS Server和授权ArcGIS Server。配置ArcGIS Server选项将设置需要的ArcGIS Server帐号。授权ArcGIS Server选项将授权ArcGIS Server的使用。

注:安装ArcGIS Server之前必须卸载版本是9.0之前的以下产品:ArcGIS Desktop、ArcInfo Workstation、ArcReader standalone、ArcIMS,否则将出现冲突,不能安装。如果是9.0版本,则不需要卸载。

二、典型安装

在这个安装方案中,服务器对象管理器(SOM)和服务器对象容器(SOC)被安装在一个机器上。这些安装部件是被预先选择在安装程序中。

安装ArcGIS Server之前,必须准备:

1、 获取ArcGIS Server的授权文件;

2、 确认机器(和操作系统等)满足软件安装要求;

3、 以具有管理员权限的帐号登陆操作系统;

4、 确保TEMP变量被设置为一个有效的目录,并具有写的权限和可用空间;

5、 关闭所有的应用程序。

6、 插入安装CD,点击setup.exe,安装程序将自动开始安装。

注: 1、使用.NET开发,必须先安装Visual Studio 2005(将升级IE为6.0);

2、安装ArcGIS 服务器对象容器(SOC)必须要有授权文件,因此,在每个机器安装SOC时都会要求授权文件。

在安装过程中,安装进程将允许你选择你所需要安装的部件(见图1-1)。在服务器对象容器(SOC)中,你可以选择只安装.NET支持或Java支持或都安装。在软件开发包(SDK)中,可以选择COM或.NET或Java,也可以选择安装ArcGIS 开发者示例(ArcGIS Developer Samples)。


图1 ArcGIS Server安装——选择部件

注:在安装ArcGIS Server时,其安装目录取决于你第一次安装ArcGIS产品的目录。比如你第一次在D盘安装了ArcGIS Desktop,那么下次安装ArcGIS产品时将默认安装在D盘。因此,必须保证安装目录有足够的空间。

根据提示,点击Next,完成安装。你可以在一台机器上只安装SOM或SOC或都安装等,详见1.2.2 设计ArcGIS站点的配置。

当完成了ArcGIS Server安装后,将进行后安装(post installation)。安装后设置将配置ArcGIS Server和配置ArcGIS Server。

三、安装后设置概述

使用ArcGIS Server必须完成安装后设置。可以在初始安装时完成安装后设置或是在稍后运行安装后设置,从开始程序ArcGIS>ArcGIS Server>ArcGIS Server Post Installation。

有两个安装选项(见图1-2),配置ArcGIS Server和认证ArcGIS Server。如果你是安装服务器对象容器(SOC),则两个选项都必须被包括。


图2 ArcGIS Server Post Installation安装

四、配置ArcGIS Server

配置ArcGIS Server选项将设置ArcGIS Server帐号。你将被提示指定ArcGIS Server帐号和密码,以及ArcGIS Container帐号。

ArcGIS Server帐号运行服务器对象管理器(SOM)服务和进程。这个进程管理容器机器(Container machines)上的容器进程,并且管理ArcGIS Server的配置日志文件。

ArcGIS容器帐号是容器进程管理服务器对象的帐号。容器进程是由服务器对象管理器(SOM)启动的,但是是作为ArcGIS容器帐号运行的。

ArcGIS服务器帐号和ArcGIS容器帐号能够是本地帐号或是域帐号。推荐用本地帐号。

如果本地帐号不存在,安装后设置将会创建它。如果你指定域帐号,这些帐号必须是已经存在的。

1.安装完arcgis server 9.2或者打开“开始”-〉“程序”-〉ArcGis-〉ArcGIS Server for the Microsoft .NET Framework-> GIS Server Post Install,弹出以下对话框;

2.


3.可以选择数据存储的位置,推荐默认下一步

4.代理服务器的设置,默认下一步。

5.默认下一步

6.点击Install

7.点击Next

8.可以在网上下载arcgis server 9.2.ecp,然后选择第三项

9.下一步

10.更具许可你可以得到不同级别的使用权限,下面提示你被授权了哪些功能。

安装完成。

11.管理组帐户

²        两个本地组帐户被自动创建

Ø         Agsadmin:包含所有的管理server的帐户

Ø         Agsusers:包含所有将访问server objects的帐户

²        将管理员与使用者分别加至这2个组中



五、使用ArcCatalog管理ArcGIS Server

1、    打开Arcgis Catalog

开始->ArcGIS->ArcCatalog,展开节点Gis Server,双击“Add Gis Server”出现下图,选择Manage GIS Services;


2、    下一步,输入URL或主机名


3、  
成,可见主机状态及其服务

4、   添加新服务

5、   输入服务名

6、   下一步,指定地图文件

注:地图文件所在文件夹不一定需要设为共享,不过地图文件最好不会置于桌面,偶本机将地图文件置于桌面时,发布时则提示拒绝访问!

7、   一直下一步直至列出该服务的配置项,如下图

8、   选择立即启动服务,完成即可

9、   如果设置正确,点击预览,可见地图如下图

六、Web方式管理ArcGIS Server:

1、   开始–程序–ArcGIS–ArcGIS Server…–ArcGIS Server Manager…(如下图)

2、   进入ArcGIS SOM管理登录页面

3、   用agsadmin组的成员登录,格式为domain”user,如Sue”zhaigh,password,这里Sue为机器名,zhaigh是本地管理员帐户(将user加入agsadmin组和agsusers组后正常登录就可以管理ArcGIS Server:控制面板->管理工具->计算机管理->本地用户和组->组->agsadmin,agsusers);输入正确的用户名、密码后就进入ArcGIS SOM管理登录页面(发现:空密码实际并非如esri所说支持!)

4、   创建soc(add new service)

²        add new service->输入新服务名称

²        next->指定地图文件

特别注意:通过这种方式创建soc,地图文件所在目录需事先设置为共享,地图路径得是UNC格式,即””machine”mapfolder”…;而通过catalog则不一定

²        下面一直next直至finished,最后启动该服务即可(注:这里都是选择了默认设置,是池式)

²        选中新建服务,点击start,可预览地图


设置ArcGISSOM用户和ArcGISSOC用户的密码

ArcGIS Server 9.3 Java安装流程

1. 安装ArcGIS Server for Java,导入ISO文件到虚拟光驱,点击setup.exe文件,进入安装页面。选择ArcGIS Server for Java。 ArcGIS Server需要占用8099、8399端口,8099是服务管理服务的端口,8399是rest服务的端口,软件会自动安装配置的Tomcat。

2. 安装过程中除了需要改变安装路径之外,一律Next,软件会自动安装SOA、SOM服务,并且安装地图管理服务。

3. 注册:在安装完了软件后,将弹出一个配置服务的对话框(GIS Server Post Install),在Welcome to the GIS Server Post Install页面中,两个复选框都选中,点下一步。在Specify GIS Server Accounts页面中,配置ArcGISSOM和ArcGISSOC的密码。在GIS Server Webservices Account页面中,为ArcGISWebServices配置密码(这些用户名和密码,一定要记住了,以后登录Server的管理模块和链接服务都需要用到)。在Specify GIS Server directories中,为Web Server 制定路径、站点名称和站点端口。后边一路next。在Registration Options中选择第三个(I have received an authorization file from ESRI and am now ready to finish the registration process)。在Software Authorization中,选择你的license文件,点Browse,选择安装文件夹下的ecp文件完成注册。

4. 更改组和用户属性:右键我的电脑,选择管理菜单,进入计算机管理页面。选择本地用户和组,此处对用户和组任意一项配置即可,另一项将自动做相应的配置。此处仅介绍组配置。

  • Administrators组,其成员为:Administrator、ArcGISSOM和ArcGISWebServices;
  • agsadmin组,其成员为:Administrator、ArcGISSOM和ArcGISWebServices;
  • agsusers组,其成员为:Administrator、ArcGISSOM和ArcGISSOC。
  • Users组,其成员为:ArcGISSOM、ArcGISSOC和ArcGISmanager。

注意,此处仅说明了是与GIS有关的组的成员信息,若该组在其他方面还有成员,其他成员不要乱删。

5. 打开ArcGIS-> ArcGIS Server for the Java Platform->ArcGIS Server Manager,User name中输入用户名”登录名(Administrator”ArcGISWebServices),密码就是你配置ArcGISmanager时的密码,若你用其他用户名登录,密码为相应密码。登录成功后,则可以发布相应的ArcGIS Server服务。

6. 注意事项:如果无法登陆,首先看是否开启了防火墙,如果是杀毒软件的防火墙,关闭就可以了!如果是Windows自带的防火墙,则可以通过添加意外处理,具体方法如下:控制面板—>防火墙,先添加web端口:8399、8099;ArcSOM端口:135;添加ArcSOM.exe、ArcSOC.exe两个应用程序, 均存放在ArcGIS\bin\目录下面!

7. arcgis server 9.3(Java)安装要求:占用磁盘空间大约1.5G左右,需要有Jdk开发环境!

8. ArcGIS Server Java 9.3 REST API的中文查询问题的解决方案:目前在ArcGIS Server 9.3 Java中使用中文进行REST查询时是有问题的,这是ArcGIS Server for Java集成的tomcat的问题,解决方案一:
a、ArcGIS Server Java9.3可以把services和rest单独导出成war包,部署到其他的web服务器上,从而可以避免内置tomcat的性能瓶颈。进入Manager–>services–>Configure ServicesHandler–>Export页面,把rest服务导出成rest.war,保存到本地;
b、把保存下来的rest.拷贝到任何一个其他版本的tomcat  的webapps目录下(ArcGIS Server内置的tomcat是5.5.9版本,我测试用的是apache-tomcat-6.0.20),此时的Tomcat应该配置服务器端的编码为UTF-8。
c、启动tomcat6.0.20,在浏览器中输入http://localhost:8080/rest,进入service  directory页面。
d、选中服务的图层进行查询,输入中文进行查询,看是否可以得到正确的结果。
有人反映这个方案不能解决问题,可能和tomcat的版本有关,还有另外两种解决方案:
方案1
从客户端入手。
中文不能查询的根本原因在于编码,当我们在使用RESTAPI进行查询的时候,请求的URL一般是这样:

“http://wuyfsles:8399/arcgis/rest/services/BeijingTraffic/MapServer/find?searchText=事故&contains=true&searchFields=&sr=&layers=0&returnGeometry=true”,其中的中文无法被服务器识别。因此,你可以在发送前对“事故”这个中文关键词进行URL编码,应该是“%CA%C2%B9%CA”,你在浏览器中输入

“http://wuyfsles:8399/arcgis/rest/services/BeijingTraffic/MapServer/find?searchText=%CA%C2%B9%CA&contains=true&searchFields=&sr=&layers=0&returnGeometry=true”的时候,是不是可以看到结果了?
方案2
从服务器端入手,还是着手解决编码问题。
既然tomcat有问题,我们就在tomcat身上开刀。以Linux为例,分别打开“/arcgis/java/manager/service/tomcat/managerappserver/conf/server.xml”和

“/arcgis/java/manager/service/tomcat/managerserver/conf/server.xml”,找到“Connector”元素,如图添加属性URIEncoding=”UTF-8″。保存退出,重启tomcat和ArcGIS Server。

ArcGIS Server 9.3 Net安装流程

1. 安装ArcGIS Server for the Microsoft .NET Framework,必须先安装IIS,然后安装

vs2005/vs2008或者vs Express2005/2008或者.NET Framework2.0和.NET Framework3.0/3.5,然后再开始安装ArcGIS Server,这个顺序不能乱。如果没有按照这个顺序安装相关软件,则会出现下面一系列的错误,不过不用怕,我会给出顺序打乱后出现问题的应对方法。

2. 导入ISO文件到虚拟光驱或者进入安装文件目录,点击setup.exe文件,进入安装

页面。选择ArcGIS Server for the Microsoft .NET Framework。 ArcGIS Server需要占用80端口,该端口易被迅雷等下载软件占用,安装之前尽量保证80端口不被占用。若被占用,需在安装过程中更改端口或者改变迅雷等软件的默认端口。

3. 安装过程中除了需要改变安装路径之外,一路Next即可。

4. 注册:在安装完了软件ArcGIS Server以后,将弹出一个配置服务的对话框(GIS

Server Post Install),在Welcome to the GIS Server Post Install页面中,两个复选框都选中,点下一步。在Specify GIS Server Accounts页面中,配置ArcGISSOM和ArcGISSOC的密码。在GIS Server Webservices Account页面中,为ArcGISWebServices配置密码(这些用户名和密码,一定要记住了,以后登录Server的管理模块和链接服务都需要用到这些密码)。在Specify GIS Server directories中,为Web Server 制定路径、站点名称和站点端口。后边一路Next。在Registration Options中选择第三个(I have received an authorization file from ESRI and am now ready to finish the registration process)。在Software Authorization中,选择你的license文件,点Browse,选择安装文件夹下的ecp文件完成注册。

5. 更改组和用户属性:右键我的电脑,选择管理菜单,进入计算机管理页面。选择本

地用户和组,此处对用户和组任意一项配置即可,另一项将自动做相应的配置。此处仅介绍组配置:

  • Administrators组,其成员为:Administrator、ArcGISSOM和ArcGISWebServices;
  • agsadmin组,其成员为:Administrator、ArcGISSOM和ArcGISWebServices;
  • agsusers组,其成员为:Administrator、ArcGISSOM和ArcGISSOC。
  • Users组,其成员为:ArcGISSOM、ArcGISSOC和ArcGISWebServices。

注意,此处仅说明了是与GIS有关的组的成员信息,若该组在其他方面还有成员,其他成员不要乱删

6. 打开ArcGIS->ArcGIS Server for the Microsoft .NET Framework->ArcGIS Server

Manager,User name中输入用户名”登录名(Administrator”ArcGISWebServices),密码就是你配置ArcGISWebServices时的密码,若你用其他用户名登录,密码为相应密码。登录成功后,则可以发布相应的ArcGIS Server服务。

7. 注意事项:如果无法登陆,首先看是否开启了防火墙,如果是杀毒软件的防火墙,

关闭就可以了!如果是Windows自带的防火墙,则可以通过添加意外处理,具体方法如下:控制面板—>防火墙,先添加web端口:80;ArcSOM端口:135;添加ArcSOM.exe、ArcSOC.exe两个应用程序, 均存放在ArcGIS\bin\目录下面!

8. 如果在安装的过程中没有按照iis、vs、ArcGIS Server的顺序,则会出现以下问题,

下面给出对应的解决方法:

  • 安装结束后,发现没有Server Manager,则说明IIS服务没有安装。
  • 安装完IIS后,发现未启动,启动发生意外错误0x8ffe2740,则说明80端口被占用。解决方法:找出相应软件,更改对应的端口号。
  • 打开ArcGIS Services Directory页面,报错:“访问IIS元数据失败”,则说明先安装的VS 2005,后安装的IIS,所以在这种情况下用于运行ASP.NET的进程帐户必须具有对IIS元数据库的读访问权,然而安装顺序不对就出错了。解决方法:1)、开始->程序->Microsoft .NET Framework SDK v2.0->SDK 命令提示;2)、输入aspnet_regiis.exe –i;3)、重启IIS,问题解决。
  • 打开ArcGIS Server Manager页面,报错:“http500内部错误”。这怎么看得见内部错误究竟是什么,去掉“显示友好http错误信息”。刷新页面,“不友好”错误信息显示为:“/ArcGIS/Manager”应用程序中的服务器错误。
    运行时错误
    说明:服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止查看应用程序错误的详细信息。详细信息:若要使他人能够从本地服务器计算机上查看此特定错误信息的详细信息,请在位于当前Web应用程序根目录下的“web.config”配置文件中创建一个标记。然后应将此标记的“mode”属性设置为“RemoteOnly”。若要使他人能够在远程计算机上查看详细信息,请将“mode”设置为“Off”。

 

<!– Web.Config配置文件–>

 

 

注释:通过修改应用程序的配置标记的“defaultRedirect”属性,使之指向自定义错误页的URL,可以用自定义错误页替换所看到的当前错误页。

 

<!– Web.Config配置文件–>

 

 

分析器错误信息:未能加载文件或程序集“System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。

很明显的错误是缺少程序集。

解决办法:要安装asp.net ajax来解决问题,这是System.Web.Extensions等dll做为GAC部署。重启机器,问题终于解决。

教训总结:下次安装VS2005和ArcGIS Server之前一定要保证IIS安装成功(怎么觉着IIS和驱动一样重要?!)。

  • arcgis server 9.3(.net)安装要求:占用磁盘空间大约1.5G左右,其中系统盘约180M左右的空间、Windows Installer 3.1、Microsoft .Net Framework 2.0、Microsoft ASP.NET 2.0 AJAX Extensions 1.0、Internet Explorer 6.0或更高版本、IIS (ASP.NET 2.0)、Visual Studio(开发人员)