I want to prevent or resolve network performance issues that affect Amazon Elastic Compute Cloud (Amazon EC2) instances that are sixth generation and later.
Short description
Sixth generation and later EC2 instances must have updated Elastic Network Adapter (ENA) drivers.
If your ENA driver is outdated, then you experience the following issues:
- Slower network throughput
- Lower packets-per-second (PPS) rates
- Higher latency
- Instance launch failure
- Elastic network interface attachment failure
- Device initialization failure
Note: C6g, M6g, and R6g instances don't require an updated ENA driver. For information about instances that are built on the AWS Nitro System, see Instances built on the AWS Nitro System.
Resolution
To resolve network performance issues, complete the following steps based on your operating system (OS).
Linux, FreeBSD, and DPDK
Check your current ENA driver version
Run the following command based on your OS or environment.
Amazon Linux, or ENA drivers that you installed from the amzn-drivers/kernel/linux ena on the GitHub website:
modinfo ena
Other Linux distributions:
cat /etc/os-release; uname -r
FreeBSD:
cat /etc/os-release; dmesg | grep 'ena v[0-9]'
Data Plane Development Kit (DPDK):
/build_dir/app/dpdk-proc-info -- --version
Note: Replace build_dir with your directory.
Check whether your ENA driver is outdated
The following table shows the minimum OS and software versions required for each environment:
| Environment | OS version | ENA driver or kernel version |
|---|
| Linux ENA driver from GitHub | N/A | ENA driver 2.2.9g |
| Red Hat Enterprise Linux (RHEL) | 8.4 | Kernel 4.18.0-305 |
| SUSE Linux Enterprise Server (SLES) | SLES 12 SP4 | SLES 12 SP4: kernel 4.12.14-95.99.3, SLE 12 SP5: kernel 4.12.14-122.116.1, SLE 15: kernel 4.12.14-150000.150.92.2, SLE 15 SP1: kernel 4.12.14-150100.197.114.2, SLE 15 SP2: kernel 5.3.18-24.15.1 |
| Ubuntu Server | 18.04.5 LTS | Kernel 5.4.0-1025-aws |
| Debian | 11 | Kernel 5.10.0 |
| Upstream Linux kernel | N/A | Kernel 5.9.1 |
| FreeBSD | 12 | ENA driver 2.3.1 |
| DPDK | N/A | 20.11 |
If you use versions that are earlier than what's listed in the preceding table, then you must update the OS, ENA driver, or kernel version.
Important: Some ENA driver versions result in major performance issues such as launch failures, network interface attachment failures, or device initialization failures. This includes anything earlier than version 1.2.0g for Linux instances where you downloaded the ENA driver from GitHub, 2.3.1 for FreeBSD, or 18.11 for DPDK.
Update the OS, ENA driver, or kernel
Note: If you installed the Linux ENA driver from GitHub for RHEL or SLES, then you receive limited support from Red Hat or SUSE.
If the OS version doesn't meet the criteria, then you must upgrade the OS to a supported version. Or, relaunch the instance from a newer Amazon Machine Image (AMI).
The ENA driver is embedded into the kernel, so it's a best practice to update your kernel to the latest version. For instructions, check the documentation for your OS or environment. For Amazon Linux 2023 (AL2023), see Updating the Linux kernel on AL2023.
Note: For DPDK, update instructions vary based on whether you installed DPDK from a package or compiled it from source.
Windows
Check your ENA version to make sure that it's version v2.2.3 or later. If the ENA driver is version v2.2.0 or earlier, then upgrade the ENA driver.
Related information
Improve network latency for Linux based EC2 instances
Troubleshoot the Elastic Network Adapter Windows driver
Troubleshoot the ENA kernel driver on Linux