可通过配置多个属性来更改部署中的 GeoAnalytics Server 的设置。要优化 GeoAnalytics Server 的性能,需要为您的组织配置这些设置。配置这些设置时,必须考虑以下内容:
- 将同时运行的作业数
- 正在使用的数据大小
- 作业运行频率
- 可用资源
门户成员运行的大数据分析工具由 ArcGIS Server 站点的 GeoAnalyticsTools 系统服务中的任务支持。下面的系统属性将在 ArcGIS Server 站点中设置,而服务属性和实例数将在 GeoAnalyticsTools 系统服务本身上设置。修改任何参数前,请通读所有设置选项以计划您的 GeoAnalytics 配置。
本主题中将使用以下示例:
- 示例 1:一次运行一个作业的三机 GeoAnalytics Server 站点
- 示例 2:同时运行两个作业的三机 GeoAnalytics Server 站点
上面的两个示例均包含三个计算机(节点),每个计算机具有 16 GB 的 RAM 和 4 个 CPU 内核。因此每个 GeoAnalytics Server 站点具有 48 GB 的 RAM 和 12 个内核。
注:
建议向 GeoAnalytics 分配的每个计算机的内存不应超过 30 GB。
系统属性
下面是站点管理员可配置的可选系统属性,以为 ArcGIS Server 站点中每台计算机上的计算平台工作进程分配 CPU 和内存:
- percentageMaxAllowedComputeCores - 此项表示单个节点上的计算平台工作进程将使用的最大 CPU 内核数(以在计算机上可用内核总数中所占百分比表示)。默认且允许的最大值为 80%。如果指定的值转换为小于 1 个 CPU 内核,则将 1 个 CPU 内核用于计算平台工作进程。
- percentageMaxAllowedComputeMemory - 此项表示单个节点上的计算平台工作进程将使用的最大内存(以在计算机上可用内存总数中所占百分比表示)。默认且允许的最大值为 80%。
要编辑系统属性,请完成以下步骤:
- 以具有管理权限的用户身份登录到 ArcGIS Server 管理员目录。URL 格式为 http://gisserver.domain.com:6080/arcgis/admin/。
- 转至系统 > 属性。
- 单击更新。
- 按照以下 JSON 格式添加属性:{ "percentageMaxAllowedComputeCores": <value>, "percentageMaxAllowedComputeMemory": <value>}.,例如 {"percentageMaxAllowedComputeCores": 80, "percentageMaxAllowedComputeMemory": 80}
服务属性
GeoAnalyticsTools 中存在两个服务级别属性 用于分配每个作业允许的最大内存和 CPU 内核数。每个计算机默认设置为 6 GB 和 4 个 CPU 内核。建议根据您的站点中可用的内存和 CPU 资源,将这些值更新到相应的值。使用默认值将不会利用分布式计算且将导致性能不佳。
要修改这些属性,可执行以下操作:
- 以具有管理权限的用户身份登录 ArcGIS Server Manager。URL 格式为 https://gisserver.domain.com:6443/arcgis/manager。
- 在服务选项卡上,选择系统文件夹。
- 在可用服务列表中,找到并选择编辑 GeoAnalyticsTools 服务。
- 使用参数选项卡可设置服务的属性。其中包括:
- 每个计算机的每个作业允许的最大内存 (GB) - 此项表示每个计算机的每个作业可使用的内存数(以千兆字节 (GB) 为单位)。
- 每个作业允许的最大计算内核数 (CPU) - 此项表示集群的所有计算机中的每个作业可使用的 CPU 内核总数。
- 完成操作后,请单击保存并重新启动以更新服务属性。
如果未修改初始值,GeoAnalytics 任务将仅使用一部分可用资源(使用 4 个内核和 18 GB 内存,在设置示例中共 12 个可用内核和 48 GB 可用内存)。
在示例 1 中,您想要使用高达 80% 的可用计算内核和计算内存(如系统属性所述)。对于具有共 12 个 CPU 内核和 48 GB RAM 的站点,每个节点内存的 80% 可以按 0.80 x 16 = 12.8 计算,每个作业的计算内核的 80% 可以按 0.80 x 12 = 9.6 GB 计算。
要利用 GeoAnalytics Server 中的可用资源和要跨站点的多个计算机分配任务,可以将相应的值更新到以下值:
- 每个计算机的每个作业允许的最大内存 (GB):12
- 每个作业允许的最大计算内核数 (CPU):9
这将确保作业被分配到站点中两个以上的计算机,且将仅使用低于 80% 的所有计算机的可用资源。分配设置还将影响实例数,如下所述。
在示例 2 中,您想要使用高达 80% 的可用计算内核和计算内存(如系统属性所述)并能够同时运行两个作业。要执行此操作,需要将每个作业设置为上面设定值的一半。这意味着资源将始终供两个作业使用。对于具有共 12 个 CPU 内核和 48 GB RAM 的站点,每个节点内存的 40% 可以按 0.40 x 16 = 6.4 计算,每个作业的计算内核的 40% 可以按 0.40 x 12 = 4.8 GB 计算。
要利用 GeoAnalytics Server 中的可用资源和要跨站点的多个计算机分配任务,可以将相应的值更新到以下值:
- 每个计算机的每个作业允许的最大内存 (GB):6
- 每个作业允许的最大计算内核数 (CPU):4
注:
选择要使用的内存数时,请确保设置的数字小于或等于为计算机资源设置的百分比(默认 80%)。由此,作业将等待实际上不可用的资源一分钟,然后显示以下错误并取消作业:ERROR BD_101057:无法启动分布式作业。请检查您的 GeoAnalyticsTools 服务设置,并确保有足够的资源可供作业运行。. 如果由于其他作业正在使用资源而导致该资源不可用,则还将出现此错误。
GeoAnalyticsTools 服务的最小和最大实例数
为站点中的每个 ArcGIS Server 计算机设置的 GeoAnalyticsTools 服务的默认最小和最大实例数为一。根据 GeoAnalytics Server 站点中包含的计算机数量,将存在 (n) 个实例可用于接受 GeoAnalytics 作业。根据服务属性中为每个作业分配的实例数和内存数与 CPU 内核数,可以处理一个或多个并发请求。GeoAnalytics Tools 的任何其他请求将排队等待,直到实例或内存和 CPU 资源可用。如果 1 分钟后没有可用资源,则将取消该作业。
为每个作业分配可能的最大内存数和 CPU 内核数适用于需要它的作业。
要同时处理多个作业,可以根据需要将为站点中的每个计算机分配的最大实例数增加到大于一。但是,您还需要修改每个作业的 CPU 和内存限值,以便存在足够的 CPU 和内存资源可供每个并发作业使用。
要设置 GeoAnalyticsTools 服务的最小和最大实例数,请执行以下步骤:
- 登录到 ArcGIS Server 管理员目录。URL 格式为 https://gisserver.domain.com:6443/arcgis/admin。
- 转至服务 > 系统 > GeoAnalyticsTools。
- 单击编辑。
- 编辑 maxInstancesPerNode 和 minInstancesPerNode 属性并单击保存编辑。
在三机示例中,将存在一共 3 个可用实例,足以满足示例 1 和示例 2 使用案例。要通过该三机情景运行 3 个以上的并发作业,除了需要调整 CPU 和内存限值之外,还必须更新实例数。
所有实例中的 CPU 和内存限值总数应小于 CPU 和内存的系统限值。每个节点的总内存乘以实例数必须小于单个计算机上的可用内存(即 (16 GB x 0.80) / 2 个实例 = 6.4,必须是大于 6 的整数),计算内核数必须小于总内核数除以实例数(即 (12 个内核 x .80) / 2 个实例 = 4.8,必须是大于 4 的整数)。
GeoAnalyticsTools 服务超时
默认情况下,GeoAnalyticsTools 服务处理的任何长时间运行的作业将在 24 小时后超时。您可能想要编辑此属性,以便工具在运行较长或较短时间后超时。可以按照以下步骤在 ArcGIS Server Manager 中编辑 GeoAnalyticsTools 服务的超时属性。
- 登录 ArcGIS Server Manager。URL 格式为 https://gisserver.domain.com:6443/arcgis/manager。
- 在服务选项卡上,选择系统文件夹。
- 在可用服务列表中,找到并选择编辑 GeoAnalyticsTools 服务。
- 在池化选项卡的指定服务超时部分下设置该服务的超时属性。将客户端可使用服务的最长时间更改为要为新超时属性设置的时间(以秒为单位)。
- 单击保存并重新启动以更新服务。