我想预防或解决影响第 6 代及更高版本的 Amazon Elastic Compute Cloud (Amazon EC2) 实例的网络性能问题。
简短描述
第 6 代及更高版本的 EC2 实例必须具有更新的弹性网络适配器 (ENA) 驱动程序。
如果您的 ENA 驱动程序已过时,则会遇到以下问题:
- 网络吞吐量降低
- 每秒数据包数 (PPS) 速率降低
- 延迟升高
- 实例启动失败
- 弹性网络接口连接失败
- 设备初始化失败
**注意:**C6g、M6g 和 R6g 实例不需要更新的 ENA 驱动程序。有关在 AWS Nitro System 上构建的实例的信息,请参阅在 AWS Nitro System 上构建的实例。
解决方法
要解决网络性能问题,请根据您的操作系统 (OS) 完成以下步骤。
Linux、FreeBSD 和 DPDK
检查您当前的 ENA 驱动程序版本
根据您的操作系统或环境运行以下命令。
Amazon Linux,或您从 GitHub 网站上的 amzn-drivers/kernel/linux ena 安装的 ENA 驱动程序:
modinfo ena
其他 Linux 发行版:
cat /etc/os-release; uname -r
FreeBSD:
cat /etc/os-release; dmesg | grep 'ena v[0-9]'
数据面板开发工具包 (DPDK):
/build_dir/app/dpdk-proc-info -- --version
**注意:**将 build_dir 替换为您的目录。
检查您的 ENA 驱动程序是否已过时
下表显示了每个环境所需的最低操作系统和软件版本:
| 环境 | 操作系统版本 | ENA 驱动程序或内核版本 |
|---|
| 来自 GitHub 的 Linux ENA 驱动程序 | 不适用 | ENA 驱动程序 2.2.9g |
| Red Hat Enterprise Linux (RHEL) | 8.3 | 内核 4.18.0-240.1.1 |
| SUSE Linux Enterprise Server (SLES) | SELS 12 SP4 | SLES 12 SP4:内核 4.12.14-95.99.3,SLE 12 SP5:内核 4.12.14-122.116.1,SLE 15:内核 4.12.14-150000.150.92.2,SLE 15 SP1:内核 4.12.14-150100.197.114.2,SLE 15 SP2:内核 5.3.18-24.15.1 |
| Ubuntu Server | 18.04.5 LTS | 内核 5.4.0-1025-aws |
| Debian | 11 | 内核 5.10.0 |
| Upstream Linux 内核 | 不适用 | 内核 5.9.1 |
| FreeBSD | 12 | ENA 驱动程序 2.3.1 |
| DPDK | 不适用 | 20.11 |
如果您使用的版本早于上表中列出的版本,则必须更新操作系统、ENA 驱动程序或内核版本。
**重要事项:**某些 ENA 驱动程序版本会导致重大的性能问题,例如启动失败、网络接口连接失败或设备初始化失败。这包括适用于从 GitHub 下载了 ENA 驱动程序的 Linux 实例的 1.2.0g 版本、适用于 FreeBSD 的 2.3.1 版本或适用于 DPDK 的 18.11 版本之前的任何版本。
更新操作系统、ENA 驱动程序或内核
**注意:**如果您从 GitHub 安装了适用于 RHEL 或 SLES 的 Linux ENA 驱动程序,您将获得 Red Hat 或 SUSE 的有限支持。
如果操作系统版本不符合条件,则必须将操作系统升级到支持的版本。或者,从较新的亚马逊机器映像 (AMI) 重启实例。
ENA 驱动程序嵌入到内核中,因此最佳做法是将内核更新到最新版本。有关说明,请查看您的操作系统或环境的文档。对于 Amazon Linux 2023 (AL2023),请参阅在 AL2023 上更新 Linux 内核。
**注意:**对于 DPDK,更新指令因安装方式不同而有所差异,具体取决于您是通过软件包安装还是从源代码编译安装。
Windows
检查您的 ENA 版本以确保其版本为 v2.2.3 或更高版本。如果 ENA 驱动程序是 v2.2.0 或更早版本,请升级 ENA 驱动程序。
相关信息
改善基于 Linux 的 EC2 实例的网络延迟
对弹性网络适配器 Windows 驱动程序进行故障排除
对 Linux 上的 ENA 内核驱动程序进行故障排除