以下注意事项围绕 ArcGIS 优化架构框架的架构支柱进行组织。 在这些技术领域中适当应用最佳实践和架构方法,对成功设计和实施架构良好的系统有很大帮助。
选择工作负载分离设计是为了帮助在整个系统中实现计算资源的最佳分配。 在测试研究中,编辑请求的处理时间通常比标准地图请求长,因此选择以单独的 ArcGIS GIS Server 站点的形式使用专用计算资源隔离编辑工作负载。 此外,将系统组件本身隔离到不同的机器上有助于确保它们不会争夺系统资源,并允许根据每个组件的系统要求定制机器类型和规格。
选择合适的 GPU(图形处理单元)对于确保 ArcGIS Pro 在虚拟化环境中的性能至关重要。 测试表明,在考虑运营费用(劳动力成本)时,向 ArcGIS Pro 虚拟机添加专用 GPU 可显著提高最终用户的工作效率,并导致成本净降低。 在 ArcGIS 架构中心中了解有关 GPU 硬件选择和 ArcGIS Pro 虚拟化的详细信息。
在做出设计决策时,了解虚拟 CPU (vCPU) 与物理 CPU 的比率非常重要,这样才能为系统组件分配适当的资源。 示意图中所有计算机的 vCPU:CPU 比率为 2:1,但某些虚拟化选项可能具有不同的比率,例如 1:1。 这些决定也可能影响 Esri 许可。 公有云比率的一些示例包括 AWS、Azure 和 GCP。
正确配置 GIS 服务对于系统性能和用户体验满意度至关重要,GIS 服务实例的错误配置可能会给系统带来问题或可靠性挑战。 例如,如果地图或要素服务的实例数设置得太少,则可能导致客户端等待时间过长和超时错误。
但是,将实例计数设置得太高可能会消耗过多的计算机资源,从而限制可在固定硬件配置上部署的服务数量。 当最大实例设置高于最小实例设置时,系统可以根据需求自动添加新实例,但这也可能出现问题,因为传入请求必须等待实例启动。 对于任何系统,了解服务使用情况都很重要,这样才能调整实例数量和服务器资源以提供最佳性能。
在本测试研究中,每个相关服务的服务实例与物理 CPU 内核的比率设置为 2:1,最小和最大实例设置配置为相同的值。 测试监控了实例使用情况以确定系统何时过载。 例如,在 8 倍设计负载下,托管服务器上服务的实例在测试时间段内 99% 的时间被观察到处于活动状态,这导致只读服务的等待时间较长。 此测试中的服务是为专用实例配置的。 了解有关配置服务实例设置的详细信息。
在本测试研究中,公共设施网络服务的配置如下:
可用实例的总数为 16 个,因为站点中有两个 ArcGIS GIS Server。
托管服务器的配置如下:
可用实例的总数为 12 个,因为站点中有两个 ArcGIS GIS Server。
指定的服务超时配置如下:
超时配置进行了迭代调整,以解决测试过程中遇到的超时问题。 由于这些设置可能会根据具体要求而有所不同,因此建议自行执行测试以确定最佳配置。
备份对于网络信息管理系统而言至关重要。 请参阅参考架构以了解详细信息。 虽然测试的设计不是生产系统,但在每次测试运行时,在对系统进行任何更改之前,都会捕获机器快照和数据库备份。 虚拟机快照在环境发生任何更改(例如调整计算机大小、安装修补程序或更新 Windows)之前和之后捕获。 然后,快照会进行编目以支持以下任一功能:
选择使用 ArcGIS Enterprise 组件的高可用性配置设计此系统是基于业务和技术系统要求,以及其他组织目标(例如实现不间断运营和最大限度地减少停机时间)做出的决定。 设计中说明了这种配置,其中包含冗余系统组件和用于文件存储的云原生、高可用性文件存储。 本测试研究没有配置高可用性数据库用于测试,尽管关系数据库供应商有多种方法来实现高可用性(包括云原生服务)。
请记住,高可用性配置会显著增加系统的基础设施和运营成本,并且需要专业技能才能成功。 了解有关网络信息管理系统高可用性的设计选择和注意事项的详细信息。
为了成功执行系统验证并提供有意义的结果,系统监控和遥测捕获是测试研究的关键方面。
测试使用了 ArcGIS Monitor 和企业 IT 监控工具(例如 Windows 性能监视器)监控系统性能并捕获有关其在特定条件下行为的遥测数据。 跨不同系统组件收集了日志,包括:
在环境中的所有计算机上捕获计算机级别的指标,例如 CPU 使用率、RAM 消耗、磁盘活动和网络活动。 有关详细信息,请查看测试结果。
此外,还捕获了已执行工作流的屏幕录像,以观察和评估最终用户体验和工作效率。
因为测试研究的范围主要集中在负载测试上,所以大多数推荐用于生产系统的自动化类型(如编写管理任务脚本)都没有采用。 但是,在您的环境中,管理脚本对工作流和操作可能具有重要价值。 在部署到生产环境之前,所有自动化脚本都应在较低的环境中进行测试。
在本测试研究中,自动化的主要应用是模拟负载测试期间的请求。 如测试结果所示,多个工作流在大规模虚拟用户环境下运行,并可应用于不同规模的负载。
Python 脚本用于对服务等待时间、ArcSOC 利用率、响应时间和失败请求执行分析并识别模式,从而为系统所需调整提供信息。 Python、PowerShell 和 SQL 脚本还用于在完成负载测试后将数据库恢复到原始状态。
虽然安全性不是测试研究的重点,但在任何生产系统设计过程的早期考虑安全性要求至关重要。 ArcGIS 软件专门用于在安全网络中有效工作,包括与 Internet 完全断开连接的环境。 测试研究设计确实包括使用身份提供商来提供适当的身份验证和授权。
相关资源:
虽然集成不在测试研究的范围内,但网络信息管理系统通常需要与其他企业系统集成,如企业资产管理 (EAM)、客户关系管理 (CRM) 和高级分销管理 (ADMS) 系统。 除了使用 ArcGIS 的标准集成注意事项外,ArcGIS Utility Network 功能还需要考虑其他要求。 根据集成要求,可能支持不同的 API 和/或 SDK。 有关详细信息,请参阅 Utility Network 旅程:集成概览。