By using AWS re:Post, you agree to the AWS re:Post Terms of Use

How do I resolve network performance issues with sixth generation and later Amazon EC2 instances?

4 minute read
0

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 Amazon EC2 instances require an updated driver for the Elastic Network Adapter (ENA). If you use older ENA drivers with these instances, then you will see suboptimal network performance. This suboptimal performance can include lower throughput and Packets Per Second (PPS) rates and higher latency. Significantly older drivers can result in failures for instance launch, elastic network interface attachment, or device initialization.

Note: C6g, M6g, and R6g instances don't require an updated driver for the ENA.

Resolution

Based on your use case, complete the following tasks.

Linux, FreeBSD, and DPDK

To install the appropriate ENA driver, complete the following steps:

  1. Check the version of the ENA driver that's currently installed. If you use Amazon Linux or if you ever installed the ENA driver from the Amazon ENA GitHub repository, then run the following command:

    modinfo ena

    For other Linux distributions, and for those that run a kernel from upstream, to view the Operating System (OS) and kernel versions, run the following command:

    cat /etc/os-release; uname -r

    For FreeBSD, to view the OS and ENA driver versions, run the following command on a running Nitro instance:

    cat /etc/os-release; dmesg | grep 'ena v[0-9]'

    For Data Plane Development Kit (DPDK), to view its version, run the following command:

    /<build_dir>/app/dpdk-proc-info -- --version

    Note: Based on your use case, change the path in the preceding command.

  2. To verify that your system meets minimum OS and software version requirements, use the command results and the following table. Later versions of the OS and the relevant software also meet the criteria. If your OS or software versions are older than required, then you must update the OS and software versions.

    EnvironmentOS versionSoftware version
    Linux ENA driver from GitHubN/AENA driver 2.2.9g
    Red Hat Enterprise Linux (RHEL)8.3Kernel 4.18.0-240.1.1
    SUSE Linux Enterprise Server (SLES)SLES 12 SP4SLES 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 Server18.04.5 LTSKernel 5.4.0-1025-aws
    Upstream Linux kernelN/AKernel 5.9.1
    FreeBSD12ENA driver 2.3.1
    DPDKN/A20.11

    Note: The following versions result in instance launch failures, elastic network interface attachment failures, or device initialization failures with sixth generation and later instances:

    Linux ENA driver from GitHub: Earlier than 1.2.0g

    FreeBSD: Earlier than 2.3.1

    DPDK: Earlier than 18.11

Update the driver

Because the ENA driver is usually embedded into the kernel, it's a best practice to update your kernel to the latest version. If the OS version doesn't meet the criteria, then you must upgrade the OS to a supported version. Or, relaunch from a newer Amazon Machine Image (AMI). If you compile and install the Linux ENA driver from GitHub for RHEL and SLES, then your system might be unsupported. This unsupported system can limit or prevent your ability to receive support from Red Hat or SUSE.

For DPDK, update instructions can vary depending on whether DPDK was installed from a package or compiled from source. To update DPDK, refer to your DPDK application documentation for instructions.

Windows based operating systems

To check the version, install, or upgrade your ENA Windows driver, see Install the Elastic Network Adapter (ENA) driver. The minimal required ENA driver version to support the sixth generation and later instance types is v2.2.3. If the driver version is earlier than v2.2.0, then it leads to instance launch or elastic network interface attachment failures.

Related information

Improve network latency for Linux based Amazon EC2 instances

Troubleshoot the Elastic Network Adapter Windows driver

AWS OFFICIAL
AWS OFFICIALUpdated 4 months ago
4 Comments

In Windows Server 2019, the Get-WmiObject cmdlet has been superseded by the Get-CimInstance cmdlet, which provides improved performance and compatibility. An updated version of this query would be: Get-CimInstance Win32_PnPSignedDriver | Select-Object DeviceName, DriverVersion | Where-Object { $_.DeviceName -like "Amazon Elastic Network" }

replied a year ago

Thank you for your comment. We'll review and update the Knowledge Center article as needed.

profile pictureAWS
EXPERT
replied a year ago

AWS ENA Windows driver team update: The article contains incorrect information regarding Windows support.

  1. Windows Server 2008 R2 has reached EOL and is no longer supported by ENA. ENA supports Windows Server 2012 and later.
  2. The correct minimal Windows driver version that supports sixth gen is v2.2.3 and not as described. See the official AWS Windows documentation for details.
  3. In order to check the installed ENA Windows simply refer to Windows documentation in the section that covers the method to verify the ENA driver version after installation

Request to AWS moderator: Please update the article with the above information.

replied a year ago

Thank you for your comment. We'll review and update the Knowledge Center article as needed.

profile pictureAWS
MODERATOR
replied a year ago