关于 ArcSOC 配置影响的测试结果

除了对数据库资源的评估外,第二组测试重点是在假设数据库资源充足的前提下,确定支持系统及其工作流在 8 倍设计负载下运行的最佳 ArcSOC 配置。

测试方法和结果

我们进行了三次测试,采用了不同的 ArcSOC : vCPU 比例:

  • 2:1, or two ArcSOCs per vCPU on the ArcGIS Server instances
  • 3:1, or three ArcSOCs per vCPU on the ArcGIS Server instances
  • 4:1, or four ArcSOCs per vCPU on the ArcGIS Server instances

我们还采用了 1:1 的 ArcSOC 与 vCPU 比例进行了此项测试,您可以在数据库资源影响评估部分描述的大型数据库实例规模测试中找到相关内容。

我们运行了多次负载测试,系统地调整 ArcSOC 实例与 vCPU 的比例,以观察和衡量性能及用户体验的影响。 为确保获得有意义的结果,系统的其他所有方面都保持不变。

通过监控 ArcSOC 使用率和可用性、服务等待时间、系统资源利用率和错误 error 率等性能指标来评估每个配置。

测试负载是原始系统测试研究设计负载的 8 倍,并将 ArcGIS Enterprise 服务器资源减半,以确保有足够的负载对系统产生影响。 JMeter 用于模拟用户工作流并测量不同负载下的系统性能。

由于 ArcGIS 是一个多层系统,因此跨客户端、服务和数据存储层以及底层基础架构本身进行了测试。 在本测试研究中,使用了 JMeter 模拟用户工作流并测量不同负载下的系统性能。

2:1 ArcSOCs : vCPU ratio

在此次测试运行中,我们在 ArcGIS Server 实例上为每个 vCPU 配置了两个 ArcSOC。 在本例中,即 8 个 vCPU 对应 16 个运行中的 ArcSOC。 与之前的图表一样,CPU 利用率百分比为橙色,磁盘为金色,内存为紫色。

在下方图表中,所有机器的 CPU 利用率通常低于 60%。 不过,您可以看到 UN GIS 服务器上的内存利用率尖峰超过了 80%。 这是由于与 1:1 的比例相比,有更多正在运行的 ArcSOC 所致。 UN GIS 服务器上的服务支持版本化数据库编辑。 虽然系统运行顺畅,但仍需密切监控内存以避免出现问题。 并发请求图表显示并发查看请求(红色)稳定地打开和关闭,平均数量为 35。

2:1 ArcSOC : vCPU 比例下的系统资源利用率

下方图表显示了托管服务器的 ArcSOC 使用情况,目前有 16 个 ArcSOC 正在运行(蓝线被绿线覆盖),同时处于使用中(繁忙)的最大数量为 14。 UN GIS 服务器(未展示)最多只有 7 个繁忙的 ArcSOC,因此未能利用额外的服务实例,尽管有 16 个 ArcSOC 正在运行,但大多处于空闲状态。 由于该服务器内存利用率超过 80%,将 UN GIS 服务器的服务实例最小/最大值调整为 8,可能会缓解部分内存压力,并使该系统针对这些工作流和负载达到最优状态。 任何工作流或负载的变化都可能影响这种平衡。

2:1 ArcSOC : vCPU 比例下的 ArcSOC 利用率

3:1 ArcSOCs to vCPU ratio

在此次测试运行中,我们为每个 vCPU 配置了三个 ArcSOC。 在本例中,即 8 个 vCPU 对应 24 个运行中的 ArcSOC。 同样,所有机器的 CPU 利用率(橙色)通常低于 60%。 不幸的是,UN GIS 服务器上的内存利用率(紫色)已达到最大极限,降至 95% 是由于清理过程所致。 并发查看请求(红色)显示它们稳定地打开和关闭,平均数量为 36。 此系统似乎能承受负载,但由于内存不足,无法持续使用。

3:1 ArcSOC : vCPU 比例下的系统资源利用率

此外,通过观察下方的 ArcSOC 图表,您可以看到在 3:1 比例下,UN GIS 服务器有 24 个 ArcSOC 正在运行(蓝线被绿线覆盖)。 然而,最大繁忙数量仅为 18,即使未使用也会占用内存。 这就是配置不当的一个示例。 我们的工作负载并不需要所有可用的 ArcSOC。 那六个不需要的实例(24 个正在运行的减去 18 个繁忙的实例)会不必要地消耗资源(内存)。 增加 UN GIS 服务器的内存可能会改善这种情况,但也可能将问题转移到 CPU 或数据库。 需要进行测试和观察,才能做出合适的配置和设计选择以支持系统。

3:1 ArcSOC : vCPU 比例下的 ArcSOC 利用率

4:1 ArcSOCs to vCPU ratio

在此次测试运行中,我们为每个 vCPU 配置了四个 ArcSOC。 在本例下,即 UN GIS 服务器上 8 个 vCPU 对应 32 个运行中的 ArcSOC。 CPU 利用率(橙色)正在增长,UN GIS 服务器上出现了两次超过 80% 的尖峰。 不过,最大的问题是该实例内存利用率接近 100%(蓝色),甚至连清理过程都难以跟上节奏。

底部的并发查看请求(红色)显示它们仍在稳定地打开和关闭,平均数量为 36,与 3:1 比例时相同。 这表明额外的 ArcSOC 并未对系统性能或最终用户体验带来任何益处, 反而仅仅是在消耗 GIS 服务器资源。

4:1 ArcSOC : vCPU 比例下的 ArcSOC 利用率

下方的 ArcSOC 图表进一步验证了这一点,显示最多只有 16 个繁忙的 ArcSOC。 我们可以清楚地看到,添加额外的服务实例只会消耗不必要的服务器资源,却没有带来任何性能或用户体验方面的提升。 增加 UN GIS 服务器的 CPU 和内存可能会改善结果,但这可能会将问题转移到数据库服务器 CPU。 测试和观察是关键。

4:1 ArcSOC : vCPU 比例下的系统资源利用率

Top