All Products
Search
Document Center

Elastic Compute Service:ERIs

Last Updated:Feb 24, 2025

An elastic RDMA interface (ERI) is a virtual network interface that can be bound to an Elastic Compute Service (ECS) instance. ERIs serve as key components in implementing elastic Remote Direct Memory Access (eRDMA) on ECS instances. An ERI is an elastic network interface (ENI) for which the ERI feature is enabled.

Feature description

To configure eRDMA on an ECS instance, you must bind ERIs to the instance. eRDMA is a low-latency, high-throughput, high-performance, and highly scalable Remote Direct Memory Access (RDMA) network service provided by Alibaba Cloud. eRDMA can provide ultra-low-latency and high-throughput network communication for ECS instances by using ERIs. For more information, see Overview.

You can bind ERIs only to ECS instances of specific instance families. For information about the instance families that support ERIs, see Overview of instance families.

To query the maximum number of ERIs that you can bind to an ECS instance of a specific instance type, call the DescribeInstanceTypes operation and check the value of the EriQuantity parameter in the response. A value of 0 indicates that you cannot bind an ERI to an ECS instance of the instance type.

When you bind multiple ERIs to an ECS instance, you must consider the maximum number of queue pairs (QPs) supported by the instance. For more information, see the Maximum number of QPs section of this topic.

Create an ERI

Create an ERI when you create an ECS instance

If the instance type supports eRDMA, you can enable the ERI feature for ENIs when you create an ECS instance. The configurations vary based on the instance type.

Separately create an ERI

When you create a secondary ENI, turn on eRDMA Interface. The ERI shares the settings of the secondary ENI, including the IP addresses and security group rules of the ENI. For more information, see Create and use an ENI.

image

Call an API operation to create an ERI

Call the CreateNetworkInterface operation to create an ENI and set the NetworkInterfaceTrafficMode parameter to HighPerformance to enable the ERI feature for the ENI.

For information about how to manage ERIs, such as binding an ERI to an ECS instance, unbinding an ERI from an ECS instance, and modifying the attributes of an ERI, see Manage ENIs.

View ERIs

View ERIs in the ECS console

You can check whether the ERI feature is enabled for an ENI in the ECS console. Perform the following steps:

  1. Log on to the ECS console.

  2. In the left-side navigation pane, choose Instances & Images > Instances.

  3. Find the ECS instance whose ENIs you want to view and click the instance ID to go to the instance details page.

  4. Click the ENIs tab and view detailed information about the ENIs bound to the ECS instance.

    If flexible RDMA interface is displayed in the ENI Type column, the ERI feature is enabled for the ENI.

    image

Call an API operation to view ERIs

Call the DescribeNetworkInterfaceAttribute operation to query the attributes of an ENI and check the value of the NetworkInterfaceTrafficMode parameter in the response to obtain the status of the ERI feature.

  • Standard: The TCP communication mode is used.

  • HighPerformance: The ERI feature is enabled and the RDMA communication mode is used.

View the ERIs bound to an ECS instance after you connect to the instance

After you enable the ERI feature for the ENIs bound to an ECS instance, you can connect to the instance and view the ERIs.

  1. Connect to an ECS instance.

    For more information, see Use Workbench to connect to a Linux instance over SSH.

  2. Run the following command to view RDMA devices:

    ibv_devices

    The returned device name indicates that the device is an ERI.

    image

    If multiple ERI-enabled ENIs are bound to your ECS instance, the following command output is returned.

    image

You can run the ibv_devinfo command to view additional information about ERI parameters, such as the port status and the maximum number of queues supported by an ERI.

image

Change the status of the ERI feature for an existing ENI

Enable the ERI feature for an ENI

When you call the ModifyNetworkInterfaceAttribute operation, set the NetworkInterfaceTrafficMode parameter to HighPerformance and set the NetworkInterfaceId parameter to the ID of the primary ENI or a secondary ENI to enable the ERI feature for the ENI.

Note

You cannot enable the ERI feature for an existing ENI in the ECS console.

Disable the ERI feature for an ENI

You cannot disable the ERI feature for an ENI for which the ERI feature is enabled. However, you can enable or disable the ERI feature for an ECS instance by binding a secondary ENI for which the ERI feature is enabled to the instance or unbinding the secondary ENI from the instance. For more information, see Bind a secondary ENI and Detach ENI.

Maximum number of QPs

A QP is a basic communication entity in RDMA. It consists of a Send Queue (SQ) and a Receive Queue (RQ). The QP is used to manage the data sent and received.

The maximum number of QPs that can be created on an RDMA device or ERI determines the maximum number of concurrent connections that an RDMA network can support and affects the scalability and concurrent processing capabilities of the network.

Maximum number of QPs supported by an ECS instance

The maximum number of QPs supported by an ECS instance varies based on the instance type. When you bind multiple ERIs to an ECS instance, the maximum number of QPs supported by the instance is the sum of the maximum number of QPs supported by all ERIs bound to the instance. You can call the DescribeInstanceTypes operation to query the maximum number of QPs supported by an instance of a specific instance type.

  • Enterprise-level CPU-based instance: The value of the QueuePairNumber parameter in the response is the maximum number of QPs supported by an instance of a specific instance type.

  • GPU-accelerated instance: The maximum number of QPs supported by an instance of a specific instance type is QueuePairNumber * NetworkCardQuantity.

Maximum number of QPs supported by an ERI

If you do not specify the QueuePairNumber parameter when you bind an ERI to an ECS instance, the maximum number of QPs supported by the instance is used as the maximum number of QPs supported by the ERI. In this case, you cannot bind additional ERIs to the instance even if the instance type allows you to bind additional ERIs to the instance. To bind additional ERIs to the instance, you must change the maximum number of QPs supported by each ERI to ensure that the total maximum number of QPs supported by all ERIs does not exceed the maximum number of QPs supported by the instance.

Change the maximum number of QPs supported by an ERI

Call the ModifyNetworkInterfaceAttribute operation and set the QueuePairNumber parameter to the number of QPs that you want an ERI to support.

Important
  • If the ERI for which you want to change the maximum number of supported QPs is bound to an ECS instance, you must stop the instance before you can change the number.

  • For a secondary ENI that is bound to an ECS instance, you can unbind the ENI from the instance, change the value of the QueuePairNumber parameter, and then bind the ENI to the instance.

View the maximum number of QPs supported by an ERI

Call the DescribeNetworkInterfaceAttribute operation to query the attributes of an ERI, and check the value of the QueuePairNumber parameter in the response to obtain the maximum number of QPs supported by the ERI.

Note

The QueuePairNumber parameter is not returned for a secondary ENI if the ENI has not been bound to an ECS instance.

Specify an appropriate supported number of QPs

To optimize application performance, you must specify an appropriate supported number of QPs. An excessively large or small number of QPs may result in wasted resources or become a performance bottleneck.

  1. Understand the application requirements. We recommend that you determine the required number of QPs based on your application scenario, the instance type, and the number of ERIs that you want to use. If your application is high-concurrency and low-latency, you may require more QPs to support a higher number of concurrent connections. In big data transmission scenarios, you may need to prioritize the bandwidth utilization of a single QP.

  2. Consider hardware limits.

    • The maximum number of QPs supported by an ECS instance varies based on the instance type. For more information, see the Maximum number of QPs supported by an ECS instance section of this topic.

    • Consider factors such as the memory size. Each QP consumes an amount of system resources.

  3. Test the performance of ERIs and optimize the ERI configurations. After you configure ERIs on an ECS instance, you must test the performance of the ERIs in your actual environment. Then, change the supported number of QPs and other relevant parameters based on the test results. Check whether exceptions occur, such as error messages and increased packet loss rates.

  4. Continuously monitor the system status. Even if you find a suitable configuration scheme, you must regularly check the system status to ensure that the current settings remain appropriate as your business grows or other changes occur.

When you specify the supported number of QPs, you must comprehensively consider multiple factors. We recommend that you carefully plan and adjust the ERI configurations based on your business characteristics, existing infrastructure, and expected performance requirements.