关于性能规划的建议

适用于此 Power Platform Well-Architected Performance Efficiency 清单建议:

PE:02 进行性能规划。 在预测使用模式发生更改之前,应进行性能规划。 预测的变化包括季节性变化、产品更新、营销活动、特殊事件或法规变化。

该指南介绍有关性能和产能规划的建议。 性能不是随随便的事情,您需要像任何其他要求一样对其进行规划。 产能规划是指确定实现工作负荷性能目标所需的资源的过程。 它涉及估计支持工作负荷的性能要求所需的资源量,例如存储、吞吐量和网络带宽。 容量规划可确保工作负载具有足够的资源来处理预期的工作负载需求,而不会出现性能下降或瓶颈。 它还有助于防止过度配置和不必要的成本。 缺乏性能和容量规划可能会导致性能问题、资源瓶颈、成本增加、分配效率低下、可伸缩性挑战和不可预测的工作负载性能。

定义

术语 定义
产能规划 预测工作负荷需要实现其性能目标的资源的过程。
功能性需求 工作负载必须具备的特性和功能,以实现其预期目的。
技术要求 满足功能要求所需的代码和基础结构。
趋势分析 历史数据分析,预测未来需求。

关键设计策略

容量规划是一个前瞻性过程,涉及根据预期的工作负载需求和模式做出决策。 它的目标是在连续和最高负载方案中优化工作负荷性能。 通过了解使用情况的变化,如季节性变化或产品发布,您可以战略性地分配资源,防止高需求期间的系统压力。 此提前策略可减少中断和提高性能效率。 通过分析过去的使用趋势和增长数据,您可以预测短期和长期需求。 您可以查明潜在的瓶颈和扩展问题,确保一致、高效的工作负载性能。

规划性能

在设计工作负载时要考虑性能,以便在工作负载运行后最大程度地减少重构。 当涉及性能时,请考虑工作负荷要求。 性能注意事项会影响工作负荷的许多方面:

  • 数据策略:是否有需要连接到的现有数据和数据存储? 您需要存储多少数据? 数据量会影响用户访问数据的速度吗? 用户如何访问数据?

  • 集成策略:您能否在不减慢系统速度的情况下进行实时集成? 是否可在特定时间内执行批处理集成? 您的数据在哪里? 是否需要本地数据网关策略?

  • 对话量:在构建代理时,了解消息或对话的目标数量及其预期增长非常重要。 您的期望是否验证了目标架构? 规模如何?

  • 数据建模:是否需要简化数据结构以加快查询速度?

  • 安全建模:您的安全规则对大量用户和数据会正常工作吗? 有没有瓶颈?

  • 环境策略:您是否有用于性能测试的测试环境? 与生产环境相似吗? 您是否已经针对性能测试编制预算?

  • 开发:开发人员是否遵循性能最佳实践? 他们是否达到了特定的性能目标? 用户是否知道可能实现哪些功能以及不存在哪些功能?

  • 测试设计和方法:如何衡量性能? 什么足够好,什么不够好? 您是否使用真实的场景和数据进行测试? 是否正在测试当前和将来的需求?

  • 用户接受和采用:如何跟踪性能? 用户的期望是否切合实际?

规划资源

性能需要时间、金钱、精力和人员。 从项目一开始就明智地分配资源。 例如,开发人员可能需要额外的时间寻求有效方法来实施业务逻辑和优化代码。 您还需要一个测试环境和一个团队来进行性能测试。

性能不是一次性的活动。 随着工作负载使用的变化和平台的发展,您需要重新审视代码并继续寻找优化性能的方法。

规划数据迁移和集成

从以前的系统迁移数据时,请仔细规划迁移。 以下是一些帮助您避免问题的提示:

  • 了解您迁移的数据的业务需求。 不要迁移超过用户需要的数据。 例如,您可能不需要将 10 年的旧潜在客户导入您的销售系统。

  • 考虑集成的运行时间和频率。 当用户与系统交互时,避免运行资源密集型进程。 将繁重的进程安排在非高峰时段或使用异步处理。

  • 在设计集成时,请注意平台限制和最佳实践。

收集性能数据

收集工作负载利用率数据需要收集和分析有关工作负载如何使用资源及其执行方式的信息。 您应该收集现有工作负载的历史模式数据和新工作负载的预测指标。 此过程可帮助将业务目标转换为技术要求,对于预测产能至关重要。 请考虑以下建议。

了解现有工作负荷

了解容量规划的现有工作负载涉及分析与工作负载如何利用资源相关的历史数据。 它涵盖资源利用率、性能数据和工作负荷模式等度量。 这种理解可确保有效的资源分配,将业务目标转化为技术要求,并有助于识别潜在的瓶颈。

  • 了解数据:查看可用的历史数据,并了解其结构、格式与产能规划相关性。 该审核可能包括资源利用率度量、工作负荷模式、绩效指标和其他相关数据点。 了解业务流程和应用程序的重要性。 确定最大使用时间、用户负载、交易率和其他相关指标。

  • 清理并预处理数据:通过移除任何不一致、错误或离群值来准备数据以进行分析。 准备数据可能涉及数据清理技术,如数据插补、缺失值处理或规范化。

  • 确定关键指标:确定与产能规划相关的指标。 指标可以包括事务量、网络吞吐量和响应时间。

  • 识别瓶颈:测量吞吐量和响应时间,以确定随着工作负载的增长,系统中可能成为瓶颈的特定组件。 使用流程挖掘分析功能(如返工和根本原因分析)来识别端到端流程中的瓶颈。

  • 可视化数据:创建可视化项(如图表或绘制)以获得对历史数据的更好的见解。 可视化效果可以帮助您识别数据中的模式、趋势和异常,从而更清楚地了解工作负载行为。 使用流程挖掘工具通过流程映射可视化数据,从而对流程进行深层分析。

了解新工作负荷

了解容量规划的新工作负载是指在没有历史数据的情况下预测未来任务的资源需求。 没有历史数据的情况下预测新工作负荷的未来需求可能会非常困难。 此过程可确保您有效地分配资源,并在引入工作负载时使分配与工作负载目标保持一致。

请考虑以下建议:

  • 用户研究:进行用户研究以了解用户如何处理当前工作负载,可以提供有关新工作负载潜在需求的宝贵见解。 研究可能涉及用户访谈、调查或观察执行现有工作负载的用户。

  • 专家判断:来自具有行业经验的主题专家或专业人士的意见可以帮助您估计对新工作负载的需求。 他们的专门知识和见解可为预测提供有价值的输入。

  • 试点项目或原型:小规模的试点项目或原型可以帮助您收集实时数据和反馈。 然后,您可以使用该数据来告知产能规划过程,调整预测的需求。

  • 外部数据源:外部数据源(如行业报表、市场调研或客户调查)可提供额外信息来估计新工作负荷的需求。 这些来源可提供有关客户首选项、市场趋势和潜在需求驱动因素的有用见解。

预测需求

预测需求涉及使用工作负荷数据预测服务或产品的未来需求。 对于容量规划来说,确保有效的资源分配、预测增长模式并为潜在的需求激增做好准备至关重要。 在预测未来需求时,您可以使用数据了解未来需求。 将统计分析、趋势分析或预测建模技术应用于预测未来需求的数据。 这些方法考虑了历史或预期的模式,并将它们预测到未来,以提供预期工作量需求的估计。 要预测需求,请考虑以下策略。

考虑各种方案

在规划绩效时,需要针对可能发生的不同情形进行规划。 这种规划应包括可预测的增长模式和意外的需求激增。 使用模式可以增加或减少。 它们可以是有机的(或多或少的用户),也可以是无机的(事件或安全事件)。 您需要在使用的更改之前在关键时间执行规划:

  • 设计(预测)
  • 定期高峰(上午 8:00 登录高峰)
  • 启动(预测验证)
  • 业务模型更改
  • 收购或合并
  • 营销推送
  • 季节变化
  • 功能发布
  • 定期

使用预测技术

预测服务或产品的未来需求涉及使用统计分析、趋势分析和数据建模等技术。

下面概述了如何使用这些技术:

  • 统计分析:统计方法可以帮助发现历史数据中的模式和关系。 您可以使用这些模式预测将来的需求。 您可以使用时间序列分析、回归分析和移动平均线等技术来识别数据中的趋势、季节性和其他模式。

  • 趋势分析:趋势分析涉及检查历史数据以识别一致的模式,并将这些模式外推到未来。 例如,如果工作负载需求在过去一年中增加了 10%,则可以预测此趋势将持续下去。 当您分析一段时间期间历史需求数据时,可以确定增长或降低趋势。 这些趋势可作为预测未来需求的基础。 趋势分析还可以识别导致流量快速变化的一次性事件的影响(无机)。 例如,功能发布可能会一致地将需求提高 5%。 如果您每年有四个主要发行版,则应该计划每一次增长 5%。

  • 预测建模:预测建模是利用历史数据和其他相关变量建立数学模型来预测未来需求的过程。 您可以使用机器学习算法、神经网络或决策树等技术。 这些模型可以考虑多种因素和变量,以便提供更加准确的预测。

使预测与工作负载目标保持一致

使预测与工作负载目标保持一致涉及调整预测容量模型,以确保它们满足给定工作负载的特定目标和需求。 这种一致性可确保资源得到充分配置,从而防止利用率不足和潜在的工作负载过载。 例如,如果您的目标是支持每晚 100 万次更新的集成,但当前数据显示更新速度较慢,则需要调整系统。 必须与利益相关者交谈以掌握工作负载的要求。 确保您的计划与服务提供商的承诺 (SLA) 保持一致。 这对齐确保您的产能满足预期需求,并有助于确定可能需要更改的系统区域。

确定资源需求

工作负载可以包含许多资源,因此无需观察一个指标即可确定资源要求。 您需要在资源级别衡量产能才能获得有意义的结果。 根据历史数据、市场趋势和业务预测预计资源的预期需求。 考虑事务数、并行用户或其他相关指标。

根据预测的需求,计算满足该需求所需的资源。 考虑 API 请求产能、网络带宽、存储空间以及人员等因素:

  • 网络带宽:评估支持预期通信级别所需的网络带宽。 应同时包括入站和出站数据传输速率,以确保服务器和客户端之间的通信顺畅高效。

  • 存储空间:评估工作负荷在预测需求期间生成或处理的数据量。 考虑数据库大小、文件存储要求以及特定于您的应用程序的其他任何数据存储需求等因素。

  • API 请求:根据可用产能和服务保护限制评估 API 请求消耗。 考虑数据的初始负载和潜在的使用峰值等因素。

  • 人员:评估管理和维护基础结构、处理客户支持、执行系统维护以及确保顺利运行所需的人员。 考虑工作负载分布、技能组合和所需专业知识等因素。

了解资源限制

工作负载中的资源具有性能限制。 性能限制适用于每个服务中的功能。 您需要了解工作负载中资源的局限性,并将这些局限性纳入设计决策。 例如,您应该知道资源限制是否要求您更改设计方法或完全更改资源。

您还需要确定可达到的限制,其中包括确定工作负荷的最大阈值或边界。 这些限制通常适用于基础结构(计算、存储、网络)、应用程序(并发连接、响应时间、可用性)和服务(每秒请求数)。 当产能规划确定可达到的限制时,您需要在限制创建性能问题之前修改工作负荷。 性能基线、连续监视和测试对于验证限制和解决方案至关重要。

权衡:误判容量规划可能导致资源过度预配或预配不足。 过度配置可能会导致更高的成本。 预配不足可能会导致性能不佳。 您还可能会遇到更高的误报警报率,这可能会导致在调查不存在的性能问题时浪费时间。 尝试找到正确的平衡点。

Power Platform 便利化

收集容量数据和预测需求Azure Monitor 使您能够收集和分析来自应用程序和基础架构的遥测数据。 它支持监视各种 Azure 资源,包括虚拟机、容器和存储帐户。 关键工具包括 Application Insights日志分析。 通过配置数据收集和定义要监视的度量和日志,可以收集重要的工作负荷数据以进行分析。 对于网络监控,将 Azure Monitor 与 Azure Network Watcher、Azure Monitor network insights 和 Azure ExpressRoute 监控相结合。

Azure Monitor 允许分析历史数据并应用预测技术来预测未来的工作负载趋势和容量要求。 您可以生成有助于容量规划的预测。 这些预测通过使用预测的需求模式来帮助估计服务器容量、网络带宽、存储容量和其他资源需求。

确定资源要求:因为它们提供广泛的配置,Azure 工具和服务可帮助您定义技术要求。 可以使工作负载要求与可用的 Azure 资源保持一致,确保选择适当的组件和设置来满足功能需求。

了解资源限制:Power Platform 提供文档和资源来帮助您了解每个不同服务的性能限制。 考虑这些限制可以帮助您做出明智的设计决策,并优化工作负载体系结构,以提高性能和成本效益。

应注意配置和服务中的缩放限制。 您可以阅读文档或运行测试。 有关详细信息,请参阅:

使用来自画布应用的数据调用:来自画布应用的数据调用流通过 OData 协议使用连接器将数据发送到表格数据源。 OData 请求流到后端层以到达目标数据源,为客户端检索数据,或将数据提交到数据源。 启用 API 的基于操作的连接器以相同的方式工作。

了解 OData 和 API 请求如何在画布应用中传输有助于您优化画布应用性能以及后端数据源。 要了解更多信息,请参阅画布应用中的数据调用流

性能效率清单

请参考整套建议。