计划、扩展和维护业务关键网关解决方案
本文适用于计划在业务关键场景中部署本地数据网关的任何人。 如果本地数据网关对你的业务的正常运营和处理业务关键型数据至关重要,那么它就是业务关键型的。
如果未正确管理业务关键网关,你可能会遇到查询失败或性能下降的情况。 当正确计划、扩展和维护你的关键业务网关解决方案时,可以将发生影响业务的问题的可能性降到最低。
术语
本文中使用了以下重要术语:
- 网关:安装在计算机上的本地数据网关应用程序。
- 网关服务器:安装了本地数据网关应用程序的 Windows 计算机(虚拟机或物理计算机/服务器)。
- 网关群集:一组协同工作的网关(可能是负载均衡)。
- 网关成员:作为网关群集一部分的网关。
下图演示了上面定义的概念之间的关系。
针对业务关键网关的建议
对于业务关键网关,需要正确部署和管理这些网关,以确保高可用性、良好的性能和可维护的可扩展性。 错误地部署网关可能会导致性能不佳、查询失败以及难以诊断潜在问题。 随着使用量的增长,它还可能会阻碍你的网关纵向和横向扩展的能力。
为确保最佳可扩展性、性能和吞吐量,请采纳接下来各节中的建议。
了解所有网关恢复密钥
确保所有网关恢复密钥已知并保存在安全的位置。 没有恢复密钥,网关将无法恢复或降级。 此限制是设计使然。 如果你丢失了恢复密钥,唯一的选择是创建新网关并重新创建数据源。 此外,你不能在没有恢复密钥的情况下向群集添加新网关,这将限制未来的可扩展性。
将恢复密钥存储在安全的地方,就像存储管理凭据一样,如密码保险箱,只有授权管理员才能访问。
如果你目前不知道所有网关恢复密钥,这是一个重大业务风险。 应立即创建新的网关群集,并开始将工作负载迁移到这些网关群集。
开发工作负载和业务关键工作负载
通过设置一个或多个开发网关群集和一个或多个生产网关群集,将开发工作负载与业务关键工作负载分开,如下所述。
使用开发网关群集来测试新的语义模型、报表、查询等。 验证新工作负载后,将其迁移到业务关键网关群集。 此过程可防止新的、未经测试的或试验性工作负载对生产工作负载产生性能影响。
在将更新应用到业务关键网关群集之前,还应使用你的开发网关群集来测试新的网关更新。 新网关更新应在开发网关群集中部署至少 24 小时,然后再用于业务关键网关群集。
使用多个网关群集
如果你要为组织中的大量用户创建网关群集,则需要基于业务部门或更小组织单位创建多个网关群集,以将任何潜在的性能影响限制在一小部分用户。
不建议为整个公司使用单个业务关键网关群集(除非公司很小)。 在单个网关群集场景中,可以想象一个用户发送的查询会对网关上的所有流量造成重大的性能影响。 如果整个公司都使用此网关,性能影响可能会遍及整个公司。 此外,当整个公司都使用一个网关群集时,你可能在使用网关性能监视功能时更难以确定哪个查询可能导致性能问题。
使用网关高可用性和负载均衡功能
应始终为任何业务关键网关群集使用网关高可用性和负载均衡功能。
- 高可用性:消除单一故障点。
- 负载均衡:在群集中的所有网关服务器之间自动分配工作负载。
为每个网关群集设置至少两个网关,以防网关因任何原因下线。 此设置可确保单个网关故障不会导致整个网关群集出现故障。 此外,可以在网关上启用 CPU、内存、并发限制,以更好地在网关群集中分配负荷。
计划和维护网关群集可扩展性
使用我们推荐的硬件和软件指南设置网关群集可确保群集以良好的性能运行。 未正确扩展的网关可能会导致性能不佳。 必须考虑很多因素才能在网关群集上获得良好的性能。
确定网关服务器硬件规格
网关服务器规格(CPU、内存、磁盘等)是一个重要因素,因为在大多数情况下,Power Query 转换会应用于网关服务器上的数据。 因此,网关服务器需要有足够的资源、内存和处理能力来处理所有数据转换。
当你需要选择服务器大小时,有两个最重要的指标:内存和 CPU。 你需要充足的内存和 CPU 能力来处理网关上的 Power Query 数据转换步骤。 你的网关服务器要足够强大以处理你所有的最高工作负载,这一点很重要。 如果网关服务器无法处理此工作负载,你的直接查询或数据刷新将失败。 了解同时执行多少个查询也很重要。
这些不同的查询选项对你的网关服务器有不同的影响。
查询类型 | 限制因素 |
---|---|
导入 | 内存 |
DirectQuery | CPU |
LiveConnect | CPU |
在导入过程中,需要对整组数据进行查询和处理,这是一项占用大量内存的任务。 此导入通常还需要花费较长时间。 DirectQueries 和 LiveConnections 通常占用大量 CPU。 大多数情况下,直接查询要执行多次才能处理一小部分数据。 由于只处理一小部分数据,因此这些直接查询通常不是占用大量内存的任务。 但是,由于查询会按需执行多次,这可能会占用大量 CPU。
根据你的工作负载,考虑针对内存或 CPU 优化网关服务器。
何时扩展网关群集
扩展是业务关键网关群集的一个重要方面。 随着网关群集使用量的增长,网关群集需要纵向和/或横向扩展以确保良好的性能。 如果你之前纵向扩展了群集中的网关,建议你开始横向扩展网关群集。
在群集内的各个节点之间扩展和分配流量负载是一个复杂的过程,此过程因每个场景而异。 虽然没有最终的模型来确保所有网关流量都能得到可预测的服务,但下面列出的限制表明需要扩展。 一般而言,我们建议优先进行横向扩展(向群集添加节点),而不是纵向扩展(在单个节点上增加 CPU、RAM 或磁盘空间)。 就整个系统处理额外流量的能力而言,横向扩展往往更有效。 横向扩展也会对群集可以处理的总带宽产生积极影响,而纵向扩展通常不会。 当一个或多个网关节点显示已达到下述阈值的指示时,应强烈考虑横向扩展群集。
CPU:CPU 在较长时间内高于 80%,但偶尔出现最大化 CPU 的短暂(不到 5 分钟)峰值是不正常的。
RAM:可用内存定期下降到 20% 以下。
磁盘:可用磁盘空间经常低于 5 GB。 这种下降也可能表明需要更战略性地配置缓存或后台处理程序目录。
并发:在单个节点上同时运行 40 多个查询。
由于跨网关节点分布的刷新和查询的配置文件可能大相径庭,因此我们还建议对长时间运行作业或内存密集型作业进行额外的检查。 在这种情况下,查询优化可能会对性能和可伸缩性产生巨大影响,不仅对单个报表和刷新,而且对整个系统产生影响。 我们建议将有问题的刷新隔离到单个专用网关群集,以评估性能特征,并使用查询计划诊断、折叠指示器和所有其他已发布的性能建议来执行优化。 这种隔离最大程度地减少了检索的数据量和所需的后处理工作量。 这种隔离还可用作将长期运行的 ETL 作业隔离到专用网关群集的长期策略,以减少与整个组织内其他典型刷新的争用。
纵向扩展网关群集
纵向扩展是指你增加网关服务器的规格(CPU、内存、磁盘等)。
如果在网关执行一个或多个查询时达到最大 CPU 或内存,则可能需要纵向扩展。 查询只能在一台网关服务器上执行,这就是为何网关服务器必须有足够的可用资源来处理整个查询以及结果数据。
横向扩展网关群集
如果网关服务器已经具有高规格(换句话说,网关服务器已经在纵向扩展),或者由于执行的并发查询的数量已经达到单个网关服务器可以管理的限制,则需要进行横向扩展。 整个网关成员集中无限的负载增加表明,通过添加节点来扩展群集是正确的操作方法。 何时扩展网关群集提供特定的阈值,用于指示何时需要扩展。 有关横向扩展的详细信息,请转到使用网关高可用性和负载均衡功能。
通过创建新的网关群集进行扩展
如果你的网关群集的资源使用率很高或者有非常多的用户依赖网关群集,可以创建一个新的网关群集。 然后可以将一部分工作负载迁移到新的网关群集。 当大量用户依赖单个网关群集时,用户能够发送对整个网关群集的性能造成重大影响的查询的可能性会显著增加。
依赖单个网关群集的用户数量异常多表明应该创建新的网关群集。
监控网关性能并排除故障
使用网关性能监视功能监视业务关键网关的整体性能非常重要。 你还可以使用此功能来解决性能问题、识别瓶颈以及识别影响整体网关性能的查询。 此功能也是帮助你确定何时扩展网关群集的重要工具。
如果你确定某个查询对网关有重大影响,会导致整体性能不佳,你可以重写查询以提高效率并最大限度地减少性能影响。
如果 Microsoft 发现网关或网关相关组件(如 Power BI Premium 高级容量过载)导致性能不佳,则必须通过扩展或减少负荷来纠正过载的组件。 Microsoft 不会调查网关或与网关相关的组件过载时出现的性能不佳。