分配服务器资源以创建缓存
ArcGIS Server 使用一个名为 CachingTools 的地理处理服务来创建缓存切片。当创建 ArcGIS Server 站点时,就已经在 System 文件夹中配置此服务。CachingTools 服务所允许的实例数将决定您的计算机专用于缓存作业的能力。
此外,一般情况下,您必须具有至少一个实例来运行正在缓存的地图、globe 或影像服务。增加地图、globe 或影像服务的实例数不会影响切片的创建速度。
在 10.0 版本和较低版本中,要增加缓存作业中使用的操作系统进程数,就需要增加要缓存的地图或 globe 服务的实例数。在 10.1 版本和更高版本中,增加 CachingTools 地理处理服务的实例数即可。
选择允许用于 CachingTools 服务的实例数
您可在任何时间使用管理器来调整想在缓存作业中使用的 CachingTools 地理处理服务的最大实例数。最小值和最大值应用于每台单个的 GIS 服务器;因此,如果最大值设置为 3 且在集群中有 4 个 GIS 服务器运行 CachingTools 服务,那么您最多可运行 12 个 CachingTools 的实例。
此操作允许从站点中添加和移除 GIS 服务器以增加或减少缓存所用的资源数量。即使缓存作业正在运行,也可以添加 GIS 服务器,然后将检测服务器并将切片分配给服务器以进行创建。
如果选择允许的 CachingTools 服务实例过多,则计算机可能会超负荷运行并且效率低下。如果选择允许的实例过少,计算机可能会得不到充分利用。得出最佳实例数是一个需要反复试验的过程。一个很好的起始点便是最多允许 n + 1 个实例,其中的 n 是集群中单个计算机上的 CPU 内核数。如果将站点部署在 Amazon Web Services 上,则需使用 2n + 1 个实例,其中的 n 为站点中单个 EC2 实例上的虚拟内核数。
CachingTools 服务必须以异步执行模式运行。这是默认值。
选择将用于缓存作业的实例数
诸如“管理地图服务器缓存切片”一类的工具允许您选择将有多少 CachingTools 实例会用于该作业。可以选择在多个运行作业之间划分可用的 CachingTools 实例。如果 CachingTools 的实例正由其他作业使用,作业可能不会应用其最大实例数。如果缓存作业正在使用所有 CachingTools 实例,其他请求的作业将列队等候第一个作业结束。
场景
假设您想要创建缓存,且在一个集群的站点内具备四个 GIS 服务器。已经将每个服务器配置为最多允许五个 CachingTools 实例。可专用于缓存作业的最大实例数为 20。
如果想要在此站点上运行两个同步缓存作业并且维持均匀分布加载,则每个作业专用的实例数为 10。
顾及灵活性
您可能已在云环境中添加了站点,该站点能够根据需要自动添加 GIS 服务器。在这种情况下,您可能不想受可以用于作业的固定最大实例数的限制。这时,您可以输入值 -1 以表明不限制可以用于作业的实例数。将所有可用的 CachingTools 实例用于作业,不考虑添加到您站点的 GIS 服务器数量。
设置可同步运行的作业数目
如果同时开始请求构建缓存的发布者过多,即使选择专用于每个作业的实例数很小,服务器也会超负荷运行。CachingControllers 服务(位于系统文件夹中)决定了可同时运行的作业数目。
CachingControllers 服务默认使用的最大实例数为 3,表示可以同时运行三个缓存作业。如果服务器接收到第四个缓存作业的请求,该作业会在其他某个作业结束之前排队等待。如果想要同时运行四个作业,可以将 CachingControllers 的最大实例数设置为 4。
使用集群
在大型 ArcGIS 站点中使用集群来划分 GIS 服务器子集之间的工作。缓存作业具有弹性,可扩展到正在运行 CachingTools 服务的集群中所有可用的 GIS 服务器。
首次配置站点时,只有一个以默认值命名的集群。如果要将缓存作业约束为计算机的子集,则需要创建一个新的集群,并指定要在该群集上运行的 CachingTools 服务。然后可以将其他服务潜在地分配给不同的群集,使得这些服务不会被缓存作业中的进程过度运行。
对于未与 CachingTools 地理处理服务在同一群集上运行的服务,可为其创建缓存。例如,您可能具有一个西班牙地图服务,该服务在 A 集群上运行,而您的 CachingTools 服务在 B 集群上运行。使用这样的配置,您依然可以创建一个西班牙缓存。
还应在同一集群上运行 CachingTools 服务和 CachingControllers 服务。