To improve performance, you can use enhanced networking on supported instance types at no additional charge. Enhanced networking uses single root I/O virtualization (SR-IOV), which is a method of device virtualization that provides higher I/O performance and lower CPU utilization when compared to traditional virtualized network interfaces. For supported instance types and instructions, see Enhanced networking on Linux and Enhanced networking on Windows.
To enable enhanced networking, the instances must use an HVM AMI and be launched in an Amazon Virtual Private Cloud (Amazon VPC).
Note: It's a best practice to use the updated version of the Elastic Network Adapter (ENA) or the Intel 82599 Virtual Function (VF) interface driver.
Non-volatile memory express (NVMe) volumes
For storage, using NVMe instance store volumes can assist with performance. Depending on your kernel version and instance type, improved performance with NVMe volumes can vary with workload. For more information, see Amazon EBS and NVMe and SSD instance store volumes.
Note: To use the Kyber I/O scheduler for certain workloads, be sure that your Amazon EC2 Linux instance is running kernel 4.12 or newer.
Using the latest kernel version and instance types is highly recommended for performance. If you’re using M3, C3, or other older instance types, consider migrating to M4 or similar instance types, as well as using the latest kernel version available for the operating system. For more information, see Amazon EC2 Instance Types.
You might see performance benefits from using DPDK-based versions of software to move networking outside the kernel and into userspace. Using DPDK can require a software update that includes DPDK support. For more information, see the DPDK website.
Process Context Identifier (PCID)
If Kernel Page-Table Isolation (KPTI) is enabled on your instance's operating system, then also enabling PCID can improve CPU performance. You must verify that both the kernel and instance type support PCID.
The tsc timer is generally the best performing timer available to most instances. If you’re using a xen timer, you might see improved performance by moving to the tsc timer. If you’re using an older operating system that’s using the jiffies timer, consider moving to an operating system that preferably supports tsc, or supports xen at minimum.
Note: Older instance types, such as M1 or M2, provide an emulated tsc timer. Consider moving to a newer instance type for better tsc timer performance.