本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Graviton 实例和容器
概述
AWS Graviton 实例由 ARM 处理器提供支持,旨在为在亚马逊弹性计算云 (Amazon EC2) 中运行的云工作负载(包括在其中运行的容器)提供最佳的性价比。 AWS AWS目前,Amazon EC2 上有三代 Graviton 可供使用。本指南重点介绍如何将 Graviton 2 和 3 与 .NET 应用程序配合使用,因为使用 Graviton 的最新版本能够显著节省成本。请记住,Graviton 实例仅运行 Linux 操作系统。因此,Graviton 实例对于在 Linux 上运行的 .NET 应用程序来说是一个非常出色的服务,但对于 Windows 操作系统或遗留的 .NET Framework 应用程序来说则并非可行之选。
Graviton 3 的效率比同类的 EC2 实例高出 60%,性能则提升了最多 40%。本指南重点介绍了使用 Graviton 所带来的成本效益,但需要指出的是,Graviton 还具有提升性能和增强环境可持续性等额外优势。
成本影响
当您切换为使用 Graviton 时,最多可以节省 45% 的成本。在将任何遗留的 .NET Framework 应用程序重构到现代的 .NET 版本之后,您便能够使解锁使用 Graviton 实例的能力。迁移到 Graviton 是一种适用于 .NET 开发者的高效成本优化手段。
下表中的示例展示了通过迁移到 Graviton 实例所能实现的性能改进潜力。
有关上图中用于创建结果的基准测试方法的完整细分和解释,请参阅 Compute 博客中的 “使用 AWS Graviton2 为.NET 5 提供支持:基准
效率提升的原因之一在于 x86 和 Graviton 中的 vCPU 意义存在差异。在 x86 架构中,vCPU 是通过超线程技术实现的一个逻辑内核。在 Graviton 中,vCPU 等同于一个物理内核,这使得 vCPU 能够完全投入到工作负载中。
使用 Graviton2 的结果是,其性价比比同类的 x86/x64 实例高出 40%。Graviton3 相较于 Graviton2 具有以下优势:
-
性能得到提升,提高达 25% 以上
-
最高比浮点性能提高两倍
-
最高比加密工作负载性能快两倍
-
最高比机器学习性能提高三倍
此外,Graviton3是云中第一个以内存为特色的实例。 DDR5
下表显示了基于 Graviton 的实例与同等的基于 x86 的实例在成本节省方面的差异。
此表显示 Graviton 节省了 19.20% 的成本。
| 实例类型 | 架构 | vCPU | 内存(GB) | 每小时成本(按需) |
|---|---|---|---|---|
| t4g.xlarge | ARM | 4 | 16 | 0.1344 美元 |
| t3.xlarge | x86 | 4 | 16 | 0.1664 美元 |
此表显示 Graviton 节省了 14.99% 的成本。
| 实例类型 | 架构 | vCPU | 内存(GB) | 每小时成本(按需) |
|---|---|---|---|---|
| c7g.4xlarge | ARM | 16 | 32 | 0.5781 美元 |
| c6i.4xlarge | x86 | 16 | 32 | 0.6800 美元 |
在考虑 Graviton 时,测试您的应用程序的性能表现非常重要。Graviton 不能取代扎实的软件开发流程。您可以通过测试来验证是否充分利用了底层计算资源。
成本优化建议
有几种方法可以利用 Graviton 处理器/实例。本部分将指导您了解从使用 x86 架构的计算机转换到 Graviton(ARM)实例所需的各项更改。
更改 Lambda 中的运行时设置
我们建议您在中切换运行时设置 AWS Lambda。有关更多信息,请参阅 Lambda 文档中的修改运行时环境。由于 .NET 是一种编译语言,因此您必须遵循一套构建流程才能使其正常运行。有关如何执行此操作的示例,请参阅。 NET 在 Graviton 上线
容器
对于容器化工作负载,请创建多架构容器映像。您可以通过在 Docker 构建命令中指定多个架构来实现这一点。例如:
docker buildx build -t "myImageName:latest" --platform linux/amd64,linux/arm64 --push .
您也可以使用诸如之类的工具 AWS Cloud Development Kit (AWS CDK) 来帮助编排构建
Amazon EC2
要从 x86/x64 迁移到 ARM,请在编译步骤中以 ARM 架构为目标。在 Visual Studio 中,你可以创建一个 ARM64 CPU。有关说明,请参阅 Microsoft 文档中的将项目配置为以 Arm64 和其他平台为目标
如果您使用的是 .NET CLI,那么在 ARM 计算机上运行该版本会生成与 Graviton 兼容的版本。要观看演示,请在 Gr AWS aviton2 上开启 Arm64 的情况下观看 “加速.NET 6 性能