性能和费用优化

本部分架构框架讨论如何在部署中平衡性能和费用优化。

框架由以下系列文章组成:

策略

评估性能要求。确定各种应用的优先级以及您需要的最低性能。

使用可扩缩的设计模式。使用自动扩缩功能、计算选项和存储配置来提高可扩缩性和性能。

确定并实施节省费用的方法。评估每项正在运行的服务的费用,同时结合优先级考虑,以便针对服务可用性和费用进行优化。

最佳做法

  • 使用自动扩缩功能和数据处理功能。
  • 使用 GPU 和 TPU 提高性能。
  • 确定要调整的应用。
  • 分析费用并进行优化。

使用自动扩缩功能和数据处理功能

请使用自动扩缩功能,以便在负载增加或减少时,服务增加或释放资源以匹配相应负载。

Compute Engine 自动扩缩

代管实例组 (MIG) 可让您在多个相同的虚拟机上扩缩无状态应用,以便系统根据单个模板(该模板基于政策)启动一组 Compute Engine 资源。自动扩缩政策包括根据 CPU 利用率、负载平衡容量、Cloud Monitoring 指标或(对于区域级 MIG)Pub/Sub 等基于队列的工作负载扩缩资源。

Google Kubernetes Engine 自动扩缩

您可以使用 Google Kubernetes Engine (GKE) 中的集群自动扩缩器功能,根据工作负载的不同需求来管理集群的节点池。根据在该节点池的节点上运行的 Pod 的资源请求(而不是实际资源利用率),集群自动扩缩器会自动增大或减小节点池的大小。

无服务器自动扩缩

无服务器计算选项包括 Cloud RunApp EngineCloud Functions,其中的每个选项都提供了自动扩缩功能。请使用这些无服务器选项来扩缩您的微服务或函数。

数据处理

DataprocDataflow 提供了自动扩缩选项来扩缩数据流水线和数据处理功能。请使用这些选项来让流水线根据处理负载访问更多计算资源。

设计问题

  • 您的哪些应用具有可变的用户负载或处理要求?
  • 您的哪些数据处理流水线具有可变的数据要求?

建议

  • 请使用 Google Cloud 负载平衡器提供全球端点。
  • 请将代管实例组与 Compute Engine 搭配使用以实现自动扩缩。
  • 请在 GKE 中使用集群自动扩缩器来自动扩缩集群。
  • 请使用 App Engine 自动扩缩您的平台即服务 (PaaS) 应用。
  • 请使用 Cloud RunCloud Functions 自动扩缩您的函数或微服务。

关键服务

资源

使用 GPU 和 TPU 提高性能

Google Cloud 提供了一些用于提高工作负载性能的选项。您可以使用这些专用硬件平台来提高应用和数据处理性能。

图形处理器 (GPU)

Compute Engine 提供了可添加到虚拟机实例的 GPU。您可以使用这些 GPU 加快实例上特定工作负载(例如机器学习和数据处理)的速度。

张量处理单元 (TPU)

TPU 是 Google 专门设计用于机器学习工作负载的矩阵处理器。TPU 最适合具有大型流水线的大规模矩阵运算,它可以大幅度减少内存访问量。

资源

确定要调整的应用

应用性能管理 (APM) 包含一些可帮助您减少延迟时间和费用的工具,以便您运行更高效的应用。借助 Cloud TraceCloud DebuggerCloud Profiler,您可以深入了解代码和服务的运行情况,并在需要时对其进行问题排查。

检测

延迟时间在决定用户体验方面是一项重要的指标。当您的应用后端开始变得复杂或者您开始采用微服务架构时,很难确定服务之间通信的延迟时间或者很难确定瓶颈。Cloud Trace 和 OpenTelemetry 工具可帮助您从部署中大规模收集延迟时间数据并快速进行分析。

调试

Cloud Debugger 可帮助您实时检查和分析生产代码的行为,而不会影响其性能或拖慢其运行速度。

分析

性能不佳的代码会增加应用和 Web 服务的延迟时间和费用。Cloud Profiler 能够持续分析整个应用中执行的 CPU 密集型或内存密集型函数的性能,从而帮助您确定并解决性能问题。

建议

分析费用并进行优化

优化费用的第一步是了解您当前的使用情况和费用。Google Cloud 提供了一种将结算数据导出到 BigQuery 的功能,该功能提供了详细分析结算数据的方法。您可以将 BigQuery 连接到 Google 数据洞察(以执行可视化分析)或其他第三方商业智能 (BI) 工具(例如 Tableau、Qlik 或 Looker)。请使用程序化通知功能,以便在预算超出特定阈值时发送通知。您可以将预算通知与第三方解决方案提供程序以及自定义应用搭配使用。

持续使用折扣是指在结算月份的大部分时间内运行特定 Compute Engine 资源而自动获享的折扣。持续使用折扣针对特定 Compute Engine 虚拟机类型的长时间使用而提供。

承诺使用折扣非常适合具有可预测资源需求的工作负载。购买承诺使用合约以后,您可以按折扣价购买一定数量的 vCPU、内存、GPU 和本地 SSD,以享受因承诺为这些资源付费 1 年或 3 年而获得的回报。

抢占式虚拟机是一种您能以比常规实例低得多的价格创建和运行的实例。但是,如果 Compute Engine 需要访问这些资源以执行其他任务,可能会终止(即抢占)这些实例。抢占式实例是过剩的 Compute Engine 容量,因此它们的可用性因使用情况而异。

当您了解费用的组成部分后,就可以决定如何进行优化。您可以首先查找利用率较低或不需要的资源。Compute Engine 会为您提供虚拟机容量建议,您可以使用这些建议来调整资源规模。实施更改后,您可以比较后续结算导出数据以查看费用差异。

您想预测使用费用吗?请使用 Google Cloud 价格计算器

建议

  • 请在您的组织中使用唯一标签来跟踪使用情况。
  • 请使用将结算数据导出到 BigQuery 功能。
  • 请使用数据洞察或其他可视化工具来直观呈现结算数据报告。
  • 请实施 Compute Engine 提出的合理容量建议。
  • 请确定 Compute Engine 的全天候消费情况以及您预测的使用情况,以购买承诺使用折扣
  • 请使用 Cloud Storage 对象生命周期管理功能来管理存储费用。

资源