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 Run、App Engine、Cloud Functions,其中的每个选项都提供了自动扩缩功能。请使用这些无服务器选项来扩缩您的微服务或函数。
数据处理
Dataproc 和 Dataflow 提供了自动扩缩选项来扩缩数据流水线和数据处理功能。请使用这些选项来让流水线根据处理负载访问更多计算资源。
设计问题
- 您的哪些应用具有可变的用户负载或处理要求?
- 您的哪些数据处理流水线具有可变的数据要求?
建议
- 请使用 Google Cloud 负载平衡器提供全球端点。
- 请将代管实例组与 Compute Engine 搭配使用以实现自动扩缩。
- 请在 GKE 中使用集群自动扩缩器来自动扩缩集群。
- 请使用 App Engine 自动扩缩您的平台即服务 (PaaS) 应用。
- 请使用 Cloud Run 或 Cloud Functions 自动扩缩您的函数或微服务。
关键服务
资源
使用 GPU 和 TPU 提高性能
Google Cloud 提供了一些用于提高工作负载性能的选项。您可以使用这些专用硬件平台来提高应用和数据处理性能。
图形处理器 (GPU)
Compute Engine 提供了可添加到虚拟机实例的 GPU。您可以使用这些 GPU 加快实例上特定工作负载(例如机器学习和数据处理)的速度。
张量处理单元 (TPU)
TPU 是 Google 专门设计用于机器学习工作负载的矩阵处理器。TPU 最适合具有大型流水线的大规模矩阵运算,它可以大幅度减少内存访问量。
资源
确定要调整的应用
应用性能管理 (APM) 包含一些可帮助您减少延迟时间和费用的工具,以便您运行更高效的应用。借助 Cloud Trace、Cloud Debugger、Cloud Profiler,您可以深入了解代码和服务的运行情况,并在需要时对其进行问题排查。
检测
延迟时间在决定用户体验方面是一项重要的指标。当您的应用后端开始变得复杂或者您开始采用微服务架构时,很难确定服务之间通信的延迟时间或者很难确定瓶颈。Cloud Trace 和 OpenTelemetry 工具可帮助您从部署中大规模收集延迟时间数据并快速进行分析。
调试
Cloud Debugger 可帮助您实时检查和分析生产代码的行为,而不会影响其性能或拖慢其运行速度。
分析
性能不佳的代码会增加应用和 Web 服务的延迟时间和费用。Cloud Profiler 能够持续分析整个应用中执行的 CPU 密集型或内存密集型函数的性能,从而帮助您确定并解决性能问题。
建议
- 请使用 Cloud Trace 检测 (instrument) 您的应用。
- 请使用 Cloud Debugger 提供实时生产调试功能。
- 请使用 Cloud Profiler 分析应用的运行性能。
后续步骤
探索 Google Cloud 架构框架的其他类别。