规划、缩放和维护业务关键型网关解决方案

本文适用于任何计划在业务关键方案中部署本地数据网关的任何人。 如果本地数据网关对于业务正常运行和处理业务关键数据至关重要,那么它就是业务关键型。

如果业务关键型网关未正确管理,则可能遇到失败的查询或性能缓慢。 正确规划、缩放和维护业务关键型网关解决方案时,可能会最大程度地减少影响业务的问题。

术语

本文中使用以下重要术语:

  • 网关:计算机上安装的本地数据网关应用程序。
  • 网关服务器:安装了本地数据网关应用程序的 Windows 计算机(虚拟机或物理计算机/服务器)。
  • 网关群集:一组可以协同工作的网关(并且可能是负载均衡的)。
  • 网关成员:作为网关群集的一部分的网关。

下图演示了上面定义的概念之间的关系。

作为三个网关服务器的一部分的网关群集示意图,每个服务器都包含单独的网关

针对业务关键型网关的建议

对于业务关键型网关,需要正确部署和管理网关,以确保高可用性、良好性能和可维护的可伸缩性。 错误地部署网关可能会导致性能不佳、查询失败,以及诊断潜在问题时遇到困难。 它还可能会妨碍随着使用量的增长,对网关进行纵向和横向扩展的能力。

若要确保最佳的可伸缩性、性能和吞吐量,请遵循后续部分中的建议。

了解所有网关恢复密钥

确保所有网关恢复密钥都是 已知的,并保存在安全的位置。 如果没有恢复密钥,则无法恢复或降级网关。 此限制是设计造成的。 如果丢失恢复密钥,唯一的选择是创建新网关并重新创建数据源。 此外,如果没有恢复密钥,则无法向群集添加新网关,这会限制将来的可伸缩性。

将恢复密钥存储在安全的位置,就像存储管理凭据(例如密码安全)一样,只有经过授权的管理员才能访问。

如果当前不知道所有网关恢复密钥,则这是一 个重大的业务风险。 立即创建新的网关群集并开始将工作负荷迁移到新的网关群集。

开发工作负载和业务关键型工作负荷

通过设置一个或多个开发网关群集和一个或多个生产网关群集,将开发工作负荷与业务关键工作负荷分开。

包含三个网关和具有三个网关的独立生产群集的开发与测试网关群集示意图

使用开发网关群集测试新的语义模型、报表、查询等。 验证新工作负载后,将其迁移到业务关键型网关群集。 此过程可防止新的、未经测试的或实验性的工作负荷对生产工作负荷产生性能影响。

此外,使用开发网关群集测试新的网关更新,然后再将更新应用到业务关键网关群集。 在业务关键网关群集上使用之前,应在开发网关群集中至少部署 24 小时的新网关更新。

使用多个网关群集

如果要为组织中的大量用户创建网关群集,则需要基于业务部门或更小创建多个网关群集,以限制对一小部分用户的任何潜在性能影响。

不建议将单个业务关键型网关群集用于整个公司(除非公司较小)。 在单个网关群集方案中,一个用户可以想象中发送一个查询,该查询会对网关中的所有流量产生重大性能影响。 如果整个公司使用网关,则性能影响可能会影响整个公司。 此外,当整个公司使用网关群集时,可能更难确定在使用 网关性能监视 功能时,哪些查询可能会导致性能问题。

包含适用于企业 BI 和应用、财务部门、营销部门和个人 BI 和应用的独立网关群集的示例组织示意图。

使用网关高可用性和负载均衡功能

始终将 网关高可用性和负载均衡 功能用于任何业务关键网关群集。

  • 高可用性:消除单点故障。
  • 负载均衡:自动将工作负荷分发到群集中的所有网关服务器。

为了避免任何原因导致网关脱机,每个网关集群至少应设置两个网关。 此设置可确保单个网关故障不会导致整个网关群集失败。 此外,可以在网关上启用 CPU、内存、并发限制,以便更好地跨网关群集分配负载。

规划和维护网关群集可伸缩性

使用建议的硬件和软件准则设置网关群集可确保群集以良好的性能运行。 未正确缩放的网关可能会导致性能不佳。 需要考虑许多因素才能在网关群集上获得良好的性能。

确定网关服务器硬件规范

网关服务器规范(CPU、内存、磁盘等)是一个重要因素,在大多数情况下,Power Query 转换将应用于网关服务器上的数据。 因此,网关服务器需要有足够的资源、内存和处理能力来处理所有数据转换。

在选择服务器大小时,有两个最重要的性能指标:内存和 CPU。 需要充足的内存和 CPU 电源来处理网关上的 Power Query 数据转换步骤。 网关服务器必须足够强大,可以处理你拥有的最高工作负荷。 如果网关服务器无法处理工作负荷,则直接查询或数据刷新将失败。 了解同时执行的查询数也很重要。

这些不同的查询选项对网关服务器有不同的影响。

查询类型 限制因子
进口 内存
DirectQuery(直接查询) 中央处理器
LiveConnect 中央处理器

在导入期间,需要查询和处理整个数据集,这是一项内存繁重的任务。 这种导入通常需要更长的时间。 DirectQueries 和 LiveConnection 通常占用大量 CPU。 在大多数情况下,将多次执行直接查询,只处理少量的数据。 由于只处理少量数据,因此这些直接查询通常不是内存密集型任务。 但是,由于按需多次执行查询,因此可能会占用大量 CPU。

根据工作负荷,请考虑为内存或 CPU 优化网关服务器。

何时缩放网关群集

缩放是业务关键型网关群集的一个重要方面。 随着网关群集的使用增长,需要对其进行纵向和/或横向扩展,以确保良好的性能。 如果之前已经在群集中纵向扩展了网关,我们建议您开始横向扩展网关群集。

缩放和分发群集中各个节点的流量负载是一个复杂的过程,具体取决于每个方案。 虽然没有明确的模型来确保所有网关流量都可预测地得到服务,但下面列出的限制表明需要缩放。 通常,我们建议优先选择水平扩展(将节点添加到群集),而非垂直扩展(增加单个节点上的 CPU、RAM 或磁盘空间)。 横向扩展在整体系统处理额外流量的能力方面往往更为有效。 横向扩展也对群集可以处理的总带宽产生积极影响,而纵向扩展通常不会。 当一个或多个网关节点显示达到以下阈值的指示时,应强烈考虑扩展群集。

  • CPU:CPU 在较长时间内超过 80%,但偶尔出现短(5 分钟以下)峰值,但最大 CPU 数不异常。

  • RAM:可用内存会定期低于 20%。

  • 磁盘:可用磁盘空间频繁下降到 5 GB 以下。 这种下降还可能表明需要更战略性地配置缓存目录或缓冲目录。

  • 并发:在单个节点上同时运行 40 多个查询。

由于在跨网关节点分布的刷新和查询可能会有截然不同的特征,我们也建议对长时间运行或内存密集的任务进行额外的审查。 在这种情况下,查询优化可能会对性能和可伸缩性产生巨大影响,不仅对单个报表和刷新,而且对整个系统产生巨大影响。 我们建议将涉及的刷新隔离到单个专用网关集群,以评估性能特征,并使用查询计划诊断、折叠指标以及所有其他已发布的性能建议来进行优化。 这种隔离可最大程度地减少检索到的数据量和所需的后期处理量。 此隔离还可用作将长时间运行的 ETL 作业封存到专用网关群集的长期策略,以减少与整个组织内其他典型刷新的争用。

扩容网关集群

使用具有两个网关、每个配备 5 GB 内存的网关集群进行查询失败的示意图,以及使用一个网关配备 7 GB 内存而成功查询的集群示意图

纵向扩展是提高网关服务器的规格(CPU、内存、磁盘等)。

如果网关执行一个或多个查询时,CPU 或内存使用率达到最大,可能需要进行扩展。 查询只能在一个网关服务器上执行,这就是为什么网关服务器必须有足够的资源可用于处理整个查询以及生成的数据。

横向扩展网关群集

使用具有两个网关的群集(每个网关具有 5 GB 内存)的查询失败示意图,以及使用具有 3 个网关的群集(每个网关具有 5 GB 内存)的查询成功示意图

如果网关服务器已具有较高的规范(换句话说,网关服务器已经进行了纵向扩展),或者因为并发查询数量的增多而达到了单个网关服务器的管理极限,则需要进行横向扩展。 在整个网关成员集上的广泛负载增加表明了,通过添加节点进行群集扩展是正确的操作方案。 何时缩放网关群集 提供特定的阈值,用于指示何时进行缩放。 有关横向扩展的详细信息,请转到 使用网关高可用性和负载均衡功能

通过创建新的网关群集进行缩放

如果网关群集的资源使用率很高或用户数量异常多,则可以创建一个新的网关群集。 然后,可以将工作负荷的子集迁移到新的网关群集。 当大量用户依赖于单个网关群集时,用户可能会发送一个查询,从而对整个网关群集产生重大性能影响的可能性会显著增加。

依赖于单个网关群集的异常大量用户表明应创建新的网关群集。

监视和排查网关性能问题

使用 网关性能监视 功能监视业务关键型网关的整体性能非常重要。 还可以使用此功能来排查性能问题、识别瓶颈,并确定影响整体网关性能的查询。 此功能也是帮助确定何时缩放网关群集的重要工具。

如果将查询确定为对网关产生重大影响,导致整体性能不佳,则可能能够重写查询,以提高效率并最大程度地降低性能影响。

如果Microsoft识别出网关或与网关相关的组件(例如过载的 Power BI Premium 容量)导致的性能不佳,则必须通过缩放或减少负载来修复过载的组件。 当网关或网关相关组件过载时,Microsoft不会调查性能不佳的问题。