在 Windows 实例上使用 ENA Express 提高网络性能
ENA Express 由 Amazon 可扩展的可靠数据报(SRD)技术提供支持。SRD 是一种高性能网络传输协议,使用动态路由来提高吞吐量并最大限度地减少尾部延迟。使用 ENA Express,您可在同一子网中的两个 EC2 实例之间通信。
ENA Express 的优势
-
将子网内的单个流可以使用的最大带宽从 5Gbps 增大到 25Gbps,最大不超过实例的总计限制。
-
减少 EC2 实例之间网络流量的尾部延迟,尤其是在网络高负载期间。
-
检测并避开拥塞的网络路径。
-
直接在网络层处理某些任务,比如接收端的数据包重新排序以及所需的大部分重传。这样可以腾出应用层用于其他工作。
注意
如果您的应用程序每秒发送或接收大量数据包,并且大部分时间都需要优化延迟,尤其是在网络不拥塞的时段,那么 增强联网 可能更适合您的网络。
在网络流量较少的时段内,当数据包使用 ENA Express 时,您可能会注意到数据包延迟略有增加(数十微秒)。在此期间,优先考虑特定网络性能特征的应用程序可以从 ENA Express 中受益,如下所示:
-
同一个子网内的最大单个流带宽从 5Gbps 增大到 25Gbps,最大不超过实例的总计限制,进程可以从中受益。例如,如果一种特定的实例类型支持最大 12.5Gbps 的贷款,单个流的带宽上限也将是 12.5Gbps。
-
在网络拥塞时段,运行时间较长的进程会减少尾部延迟。
-
网络响应时间分配更流畅、更标准时,进程可以从中受益。
ENA Express 的工作原理
ENA Express 由 Amazon 可扩展的可靠数据报(SRD)技术提供支持。该技术通过不同的 Amazon 网络路径为每个网络流分配数据包,并在检测到拥塞迹象时动态调整分配。它还能管理接收端的数据包重新排序。
为确保 ENA Express 能够按预期方式管理网络流量,实例的发送和接收以及实例之间的通信必须满足以下所有要求:
-
同时支持发送和接收实例类型。有关更多信息,请参阅 ENA Express 支持的实例类型 表。
-
发送和接收实例都必须配置 ENA Express。如配置存在差异,则可能会遇到流量默认为标准 ENA 传输的情况。以下方案显示了可能发生的情况。
方案:配置差异
实例 已启用 ENA Express UDP 使用 ENA Express 实例 1 支持 支持 实例 2 支持 不支持 在这种情况下,两个实例之间的 TCP 流量可以使用 ENA Express,因为两个实例均已启用该功能。但是,由于其中一个实例不将 ENA Express 用于 UDP 流量,因此这两个实例之间通过 UDP 进行的通信则使用标准 ENA 传输。
-
发送和接收实例必须在同一子网中运行。
-
实例之间的网络路径不得包含中间件。ENA Express 目前不支持中间件。
如果未满足任何要求,实例将使用标准 TCP/UDP 协议,但不使用 SRD 进行通信。
注意
Amazon EC2 是指实例与作为附件附加到该实例的网络接口之间的关系。ENA Express 设置适用于该附件。如果网络接口从实例中分离,则该附件将不再存在,应用于它的 ENA Express 设置将不再生效。终止实例时也是如此,即使网络接口仍然存在。
ENA Express 支持的实例类型
下表包含支持 ENA Express 的实例类型。
实例类型 | 架构 |
---|---|
通用型 | |
m6a.48xlarge |
x86_64 |
m6a.metal |
x86_64 |
m6i.8xlarge |
x86_64 |
m6i.12xlarge |
x86_64 |
m6i.16xlarge |
x86_64 |
m6i.24xlarge |
x86_64 |
m6i.32xlarge |
x86_64 |
m6i.metal |
x86_64 |
m6id.8xlarge |
x86_64 |
m6id.12xlarge |
x86_64 |
m6id.16xlarge |
x86_64 |
m6id.24xlarge |
x86_64 |
m6id.32xlarge |
x86_64 |
m6id.metal |
x86_64 |
m7i.12xlarge |
x86_64 |
m7i.16xlarge |
x86_64 |
m7i.24xlarge |
x86_64 |
m7i.48xlarge |
x86_64 |
m7i.metal-24xl |
x86_64 |
m7i.metal-48xl |
x86_64 |
计算优化 | |
c6a.48xlarge |
x86_64 |
c6a.metal |
x86_64 |
c6i.8xlarge |
x86_64 |
c6i.12xlarge |
x86_64 |
c6i.16xlarge |
x86_64 |
c6i.24xlarge |
x86_64 |
c6i.32xlarge |
x86_64 |
c6i.metal |
x86_64 |
c6id.8xlarge |
x86_64 |
c6id.12xlarge |
x86_64 |
c6id.16xlarge |
x86_64 |
c6id.24xlarge |
x86_64 |
c6id.32xlarge |
x86_64 |
c6id.metal |
x86_64 |
c7i.12xlarge |
x86_64 |
c7i.16xlarge |
x86_64 |
c7i.24xlarge |
x86_64 |
c7i.48xlarge |
x86_64 |
c7i.metal-24xl |
x86_64 |
c7i.metal-48xl |
x86_64 |
内存优化 | |
r6a.48xlarge |
x86_64 |
r6a.metal |
x86_64 |
r6i.8xlarge |
x86_64 |
r6i.12xlarge |
x86_64 |
r6i.16xlarge |
x86_64 |
r6i.24xlarge |
x86_64 |
r6i.32xlarge |
x86_64 |
r6i.metal |
x86_64 |
r6id.8xlarge |
x86_64 |
r6id.12xlarge |
x86_64 |
r6id.16xlarge |
x86_64 |
r6id.24xlarge |
x86_64 |
r6id.32xlarge |
x86_64 |
r6id.metal |
x86_64 |
r7i.12xlarge |
x86_64 |
r7i.16xlarge |
x86_64 |
r7i.24xlarge |
x86_64 |
r7i.48xlarge |
x86_64 |
r7i.metal-24xl |
x86_64 |
r7i.metal-48xl |
x86_64 |
x2idn.16xlarge |
x86_64 |
x2idn.24xlarge |
x86_64 |
x2idn.32xlarge |
x86_64 |
x2idn.metal |
x86_64 |
x2iedn.8xlarge |
x86_64 |
x2iedn.16xlarge |
x86_64 |
x2iedn.24xlarge |
x86_64 |
x2iedn.32xlarge |
x86_64 |
x2iedn.metal |
x86_64 |
存储优化 | |
i4i.8xlarge |
x86_64 |
i4i.12xlarge |
x86_64 |
i4i.16xlarge |
x86_64 |
i4i.24xlarge |
x86_64 |
i4i.32xlarge |
x86_64 |
i4i.metal |
x86_64 |
列出并查看 ENA Express 设置
本节介绍如何通过 Amazon Web Services Management Console 或 Amazon CLI 列出和查看 ENA Express 信息。有关更多信息,请选择与要使用的方法匹配的选项卡。
配置 ENA Express 设置
您可为支持的 EC2 实例类型配置 ENA Express,而无需安装任何其他软件。本节介绍如何从 Amazon Web Services Management Console 或 Amazon CLI 中配置 ENA Express。有关更多信息,请选择与要使用的方法匹配的选项卡。
启动 EC2 实例时配置 ENA Express
当您从 Amazon Web Services Management Console 中启动实例时,您可以使用以下方法之一为 AMI 配置 ENA Express。
-
当您使用启动实例向导启动实例时,可以为您的 AMI 配置 ENA Express。有关配置的详细信息,请参阅启动实例向导的 Network settings (网络设置) 中的高级网络配置。
-
当您使用启动模板时,可以为您的 AMI 配置 ENA Express。有关启动模板配置的更多信息,请参阅启动模板的 Network settings (网络设置) 中的高级网络配置。