Google Cloud 架构框架:性能优化

Last reviewed 2021-10-08 UTC

Google Cloud 架构框架中的本文档介绍了优化 Google Cloud 中的工作负载性能的最佳实践。

策略

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

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

最佳做法

  • 使用自动扩缩功能和数据处理功能。
  • 使用 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 架构框架的其他类别。