此内容已过时。此版本的架构完善的框架现在可在以下位置找到: https://docs.aws.amazon.com/zh_cn/wellarchitected/2022-03-31/framework/performance-efficiency.html

PERF 2: 如何选择计算解决方案?

适合工作负载的最佳计算解决方案会根据应用程序设计、使用模式和配置设置而有所不同。架构可以使用不同的计算解决方案来支持各种组件,并且可以实现各种不同的功能来提高性能。为架构选择错误的计算解决方案可能会降低性能效率。

资源

Amazon EC2 foundations (CMP211-R2)
Powering next-gen Amazon EC2: Deep dive into the Nitro system
Deliver high performance ML inference with AWS Inferentia (CMP324-R1)
Optimize performance and cost for your AWS compute (CMP323-R1)
Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1)
Cloud Compute with AWS
EC2 Instance Types
Processor State Control for Your EC2 Instance
EKS Containers: EKS Worker Nodes
ECS Containers: Amazon ECS Container Instances
Functions: Lambda Function Configuration

最佳实践:

改进计划

评估可用的计算方案

  • 考虑计算选项: 确定符合您要求的计算选项。从性能角度来看,实例可用于长时间运行的应用,尤其是那些具有状态和长时间运行计算周期的应用;函数可用于由事件发起且要求快速响应的无状态应用;容器让您能够有效地使用实例的资源。
    Cloud Compute with AWS
  • 定义计算性能要求: 确定对您的工作负载至关重要的计算性能指标,并使用涉及基准测试或负载测试的数据驱动型方法来实施您的要求。使用此数据确定计算解决方案受限的方面,并检查可以改进解决方案的配置选项。
  • 了解可用的计算配置选项

  • 了解可用的配置选项: 对于您选择的计算选项,使用可用的配置选项进行优化,以满足您的性能要求。通过 AWS Nitro 系统可充分利用主机硬件的计算资源和内存资源。专用 Nitro 卡可实现高速联网、高速 EBS 和 I/O 加速。
    AWS Nitro System
  • 收集与计算相关的指标

  • 收集与计算相关的指标: Amazon CloudWatch 可以收集环境中各种计算资源的指标。结合使用 CloudWatch 和其他指标记录工具来跟踪您的工作负载内的系统级指标。记录 CPU 使用水平、内存、磁盘 I/O 和网络等数据,以便深入了解使用水平或瓶颈。这些数据对于了解工作负载的性能,以及工作负载利用资源的效率至关重要。将这些指标用作数据驱动方法的一部分,以便主动调整和优化工作负载的资源。
    Amazon CloudWatch
  • 通过合理调整大小来确定需要的配置

  • 通过合理调整大小来修改工作负载配置: 要优化性能和整体效率,请确定工作负载需要哪些资源。对于对内存的要求比对 CPU 的要求更高的系统,选择内存优化型实例,对于执行非内存密集型数据处理的组件,选择计算优化型实例。合理调整大小可让您的工作负载能够在只使用所需资源的情况下,尽可能高性能地运行。
  • 利用资源的可用弹性

  • 利用弹性: 弹性可根据对您拥有的资源的需求来提供这些资源。实例、容器和函数都能够与自动扩展功能相结合或作为此服务的一项功能来提供可实现弹性的机制。在您的架构中利用弹性,可确保您有足够的容量来满足所有使用规模的性能要求。 确保衡量扩展或缩减弹性资源的指标已根据所部署的工作负载类型进行了验证。如果您正在部署一个视频转码应用程序,CPU 利用率预计为 100%,并且不应将此作为您的主要指标。或者,您也可以衡量等待缩放您的实例类型的转码作业的队列深度。 确保工作负载部署可以处理扩展事件和缩减事件。安全地缩减工作负载组件,与在需要时扩展资源同样重要。创建缩减事件的测试方案,以确保工作负载按预期方式运行。
  • 根据指标重新评估计算需求

  • 使用数据驱动的方法来优化资源: 要实现最高性能和效率,请使用一段时间内从工作负载中收集的数据来调整和优化您的资源。查看工作负载对当前资源的使用趋势,并确定可以在哪些方面做出更改,以便更好地满足您的工作负载需求。当资源被过度使用时,系统性能会降低,而资源没有得到充分利用会导致资源使用效率较低并且成本较高。