Skip To Content

预估和容纳用户

ArcGIS Server 的强大优势在于它可以向位于不同地点的多个用户提供 GIS 功能。规划 ArcGIS Server 时,需确定出要使用该系统的用户数量以及支持这么多用户所需要的硬件数量。此外,诸如是否可能出现大量用户集中使用的现象等其他因素也会对决策造成影响。如果您无法添加更多硬件,则可以尝试通过调整服务配置来容纳更多用户。

调整站点中的计算机数量

ArcGIS Server 站点是配置为在平等条件下协同工作的一台或多台计算机的集合。处理负荷较高时,ArcGIS Server 计算机通常先于 Web 服务器达到 100% 的 CPU 使用率;因此,确定出要部署的 ArcGIS Server 计算机数量是便于容纳用户的一个重要决策。

系统启动并运行后,使用日志及服务器统计数据评估服务器的执行状况。还可使用操作系统工具(如 Windows 性能监视器)评估接纳请求时服务器的繁忙程度。最后,可使用一些第三方工具和服务对系统性能进行监视。Amazon EC2 平台中的 Amazon Cloud Watch 便是其中一个用于在云环境下监视系统性能的 Web 服务示例。

如果发现在系统负载达到峰值期间向 ArcGIS Server 发出的正常请求超时,并且在较长一段时间内 CPU 使用率都接近 100%,则位于 ArcGIS Server 层的附加计算机可以提高系统性能。可以手动添加新计算机,也可以通过采用虚拟计算机的自动化过程添加新计算机。例如,您可以创建一个脚本,用于在 CPU 使用率超过 70% 持续 15 分钟以上时添加一台新的 ArcGIS Server 计算机。

地图缓存或地理处理等过程都会占用大量的 CPU 资源。如果能够预期这些作业的执行时间,则可以临时创建多台 ArcGIS Server 计算机并在作业完成后将其销毁。在这类情形中,虚拟计算机和云计算平台非常方便,因为两者都可以快速获取附加硬件并在使用后立即释放。

了解如何将计算机添加到站点

了解服务实例

ArcGIS Server 站点中的某个服务发出请求(例如平移地图或导航至某个地址)时,该请求将由在服务器计算机上运行的已发布服务的实例进行处理。服务实例由名为 ArcSOC 进程的 Esri 专有服务器进程提供支持。每个 ArcSOC 进程运行时都需要占用一定量的计算机内存。

对于接收偶发请求的服务,尤其是服务器站点托管许多服务时,建议使用共享实例。此外,专用实例可让服务在通过一个或多个服务器进程处理请求时始终可用,同时也是经常性或计算密集型请求的理想之选。

共享实例池适用于兼容的地图服务,例如:

  • 不经常使用的服务。因部署而异,但对于大多数部署来说,意味着平均每分钟的服务请求数少于一个。
  • 最小专用实例数已设置为零的服务。
  • 大多数缓存地图服务。

ArcGIS Server 提供对从 ArcGIS Pro 发布到 ArcGIS Server 站点的每个兼容地图服务使用共享实例或专用实例的功能。使用共享实例可以通过池化多个活动服务器进程以供多个服务使用的方式来节省内存使用量。这样做可以减少没有积极处理请求的服务的内存使用量。

选择实例类型

对于接收偶发请求的服务,尤其是服务器站点托管许多服务时,建议使用共享实例。此外,专用实例可让服务在通过一个或多个服务器进程处理请求时始终可用,同时也是经常性或计算密集型请求的理想之选。

管理员可以选择默认实例类型(无论兼容地图服务最初应使用共享实例还是专用实例)以及随时更改单个服务的实例类型。基于交通流量作出这些决策 - 适应当前流量或为预期交通变化做好准备。

并非所有服务都可以使用共享实例池。以下约束适用:

  • 仅从 ArcGIS Pro 中发布的地图服务可以配置为使用共享实例池。不支持其他服务类型,例如地理处理服务。
  • 仅可以启用地图服务的某些功能,例如,要素访问、WFS、WMS 和 KML。请先关闭所有其他应用程序,然后再继续下一步。
  • 具有自定义服务器对象扩展模块 (SOE) 或服务器对象拦截器 (SOI) 的服务无法使用共享实例。
  • ArcMap 发布的服务无法使用共享实例。
  • ArcGIS Pro 发布的缓存地图服务若满足以上要求,则可以使用共享实例。

共享实例池适用于兼容的地图服务,例如:

  • 不经常使用的服务。因部署而异,但对于大多数部署来说,意味着平均每分钟的服务请求数少于一个。
  • 最小专用实例数已设置为零的服务。
  • 大多数缓存地图服务。

调整专用实例池

如果服务正在使用专用实例,则可以调整每台计算机允许的最小和最大实例数。这些参数可帮助您的站点服务适应交通流量波动。

最大实例数属性表示在任意指定 ArcGIS Server 计算机上运行的该特定服务的最大实例数。作为管理员,需确定出在性能水平可以接受的前提下,多少个服务配置实例可以满足用户预期需求。这是一个复合的评估过程,需要计算每个客户端使用服务的平均时间、预期的客户端数量、客户端请求频率以及每个请求所需的处理强度。

建议通过对服务器进行持续监控确定服务配置所需的实例数。如果客户端等待时间较长或请求超时,则可能需要调整可用实例数或调整应用程序使用这些实例的方式。确定支持客户端的实例数量后,使用该值除以部署中 ArcGIS Server 计算机的数量,然后将服务配置的最大实例数设置为所得结果。例如,如果需要最多十个服务实例能够同时处理其请求,且已具有两台可用 ArcGIS Server 计算机,则将最大实例数设置为五。

最小实例数属性表示每台 ArcGIS Server 计算机上已创建且可供服务使用的专用实例数。如果您担心可能会发生多个用户同时使用一项服务的状况,则可考虑减少该服务的最小实例数。

甚至可以将最小实例数设置为零。但是,当没有任何活动实例的服务接下来接收请求时,这会导致性能短暂延迟。该滞后时间称为“冷启动”。

考虑用户使用服务花费的时间长度。处理某些服务器请求的强度可能要比处理其他请求时大一些。大量处理强度较小的服务请求并不比少量处理强度较大的请求更容易导致服务器瘫痪。每项服务均具有最长等待时间属性和最长使用时间属性。如果用户发出的服务请求屡次超时,则应考虑延长最长等待时间或增大可用服务实例的数量。

通过日志和服务器统计数据来确定是否请求过多而导致超时,以及是否在服务最长使用时间范围之外使用服务。使用 Server Manager 调整可用服务实例数以及服务的最长等待时间和使用时间。