All Products
Search
Document Center

Elastic Compute Service:Monitor and diagnose eRDMA

Last Updated:Jul 15, 2026

Use CloudMonitor, eadm, iproute2, and the diagnose tool to monitor eRDMA traffic, locate faults, and evaluate network performance.

Prerequisites

eRDMA is installed and deployed on the target ECS instance. See Enable eRDMA for an ECS instance.

Monitor eRDMA with CloudMonitor

CloudMonitor tracks eRDMA status and supports custom alerts. See Custom monitoring.

View the monitoring metrics supported by eRDMA

  1. Log on to the CloudMonitor console.

  2. In the metric list search box, enter eri to view the monitoring metrics for eRDMA.

    The search results include the following 5 eRDMA monitoring metrics (metric type: erdma, Dimensions: userId,instanceId, Statistics: Value, MinPeriods: 60s; all metrics support alert configuration):

    • eri_active_qp_num: Number of connections in the instance ERI dimension, unit: count

    • rx_eri_bw_bps: Inbound bandwidth in the instance ERI dimension, unit: bit/s

    • rx_eri_pkt_pps: Inbound data packet PPS in the instance ERI dimension, unit: count/s

    • tx_eri_bw_bps: Outbound bandwidth in the instance ERI dimension, unit: bit/s

    • tx_eri_pkt_pps: Outbound data packet PPS in the instance ERI dimension, unit: count/s

Diagnose eRDMA with the eadm tool

eadm is a user-space tool deployed with the eRDMA driver. It provides real-time monitoring and diagnostics to help locate faults. Key features include:

  • Traffic monitoring and assisted diagnostics: Real-time traffic statistics for the entire device.

  • Query and set configurations: Configure the delay ACK feature and the CC algorithm.

The following are common eadm commands. For other commands, run eadm -h.

Warning

This tool is for diagnostics and debugging only. It may change in the future, and its availability is not guaranteed in all scenarios.

  • View help for the eadm command.

    eadm -h
    [root@xxx ~]# eadm -h
    Usage: eadm OBJECT { COMMAND | help }
    where  OBJECT := { dump stat info ver conf help }
  • Monitor real-time traffic of an eRDMA device

    Requires driver version 0.2.34 or later.

    eadm stat -d <ibdev_name> -l

    <ibdev_name>: the eRDMA device name. Run ibv_devinfo to find it. If only one eRDMA device exists, you can omit -d <ibdev_name>.

    [root@xxx         xxx ~]# ibv_devinfo
    hca_id: erdma_0
            transport:                  eRDMA (1)
            fw_ver:                     0.2.0
            node_guid:                  0216:3eff:fe13:1914
            sys_image_guid:             0216:3eff:fe13:1914
            vendor_id:                  0x1ded
            vendor_part_id:             4223
            hw_ver:                     0x0
            phys_port_cnt:              1
                port: 1
                    state:              PORT_ACTIVE (4)
                    max_mtu:            4096 (5)
                    active_mtu:         4096 (5)
                    sm_lid:             0
                    port_lid:           0
                    port_lmc:           0x00
                    link_layer:         Ethernet
    
    [root@xxx         xxx ~]# eadm stat -d erdma_0 -l
    Monitoring erdma_0...    (press CTRL-C to stop)
    
    14:07:57  rx:    218.46 MiB/s 1000313 p/s        tx:    218.46 MiB/s 1000315 p/s
  • Get eRDMA device statistics, such as CM and verbs message counts and traffic counts.

    eadm stat -d <ibdev_name>

    <ibdev_name>: the eRDMA device name. Run ibv_devinfo to find it. If only one eRDMA device exists, you can omit -d <ibdev_name>.

    [root@ixxxxxxZ ~]# eadm stat -d erdma_0
    return cnts:55
    listen_create_cnt : 1
    listen_ipv6_cnt : 0
    listen_success_cnt : 1
    listen_failed_cnt : 0
    listen_destroy_cnt : 0
    accept_total_cnt : 300
    accept_success_cnt : 300
    accept_failed_cnt : 0
    reject_cnt : 0
    reject_failed_cnt : 0
    connect_total_cnt : 300
    connect_success_cnt : 300
    connect_failed_cnt : 0
    connect_timeout_cnt : 0
    connect_reset_cnt : 0
    cmdq_submitted_cnt : 266
    cmdq_comp_cnt : 266
    cmdq_eq_notify_cnt : 263
    cmdq_eq_event_cnt : 0
  • Get the current eRDMA driver version.

    eadm ver
Note

Other commands such as info, dump, and conf have usage constraints. Do not run them unless necessary.

Monitor and diagnose eRDMA with iproute2

iproute2 is a Linux networking toolkit that provides utilities such as ip and ss for managing network interfaces, routing tables, and traffic control. Use its built-in rdma command to monitor and diagnose the RDMA subsystem.

Note

Most Linux distributions, such as Alibaba Cloud Linux 3 and Ubuntu 20.04 or later, include iproute2 by default. See your operating system documentation for details.

  • Query eRDMA device status.

    rdma link
  • Query eRDMA resource usage, such as the number of CQs, QPs, and MRs.

    Note

    In RDMA network communication, Queue Pair (QP), Completion Queue (CQ), Memory Region (MR), and verbs Opcode are the core components. They play important roles in RDMA communication and ensure high efficiency and low latency of RDMA network communication.

    See Capabilities and specifications of eRDMA.

    rdma res
    [root@xxx log]# rdma res
    1: erdma_0: pd 12 cq 2 qp 200 cm_id 201 mr 301 ctx 2
  • Query eRDMA performance statistics, such as connection counts, connection status, and packet counts.

    rdma -p stat
    [root@xxx log]# rdma -p stat link erdma_0/1
    link erdma_0/1
         listen_create_cnt 1
         listen_ipv6_cnt 0
         listen_success_cnt 1
         listen_failed_cnt 0
         listen_destroy_cnt 0
         accept_total_cnt 500
         accept_success_cnt 500
         accept_failed_cnt 0
         reject_cnt 0
         reject_failed_cnt 0
         connect_total_cnt 500
         connect_success_cnt 500
         connect_failed_cnt 0
         connect_timeout_cnt 0
         connect_reset_cnt 0
         cmdq_submitted_cnt 6344
         cmdq_comp_cnt 6344
         cmdq_eq_notify_cnt 5453
         cmdq_eq_event_cnt 0
         cmdq_cq_armed_cnt 5454
       erdma_aeq_event_cnt 0

Diagnose and evaluate eRDMA with the diagnose tool

The diagnose tool supports basic function checks, HPC environment checks, and latency checks for eRDMA.

Possible results of a diagnose check

  • PASS: The check passed.

  • SKIP: The current system version does not support this check.

  • FAIL: The check tool is not installed or the check failed. The failed command is listed in fail info.

  • Other INFO messages: eRDMA configuration details, such as installation mode, driver version, and CC algorithm.

Install diagnose

On an eRDMA-configured instance, download the diagnose tool:

  • Download from an internal URL

    wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py
  • Download from a public URL

    wget https://mirrors.aliyun.com/erdma/tools/diagnose.py

How to use the diagnose tool

python diagnose.py -h

[root@xxx                ~]# python diagnose.py -h
usage: diagnose.py [-h] [-d] [-D DIAGNOSES [DIAGNOSES ...]] [--debug]
                   [-H HOSTS [HOSTS ...]] [-p] [-P PERFTESTS [PERFTESTS ...]]
                   [-k KEY_FILE] [-s MESSAGE_SIZE] [-u USER] [-i ITERATIONS]
                   [--hpc-check] [--hpc-checks HPC_CHECKS [HPC_CHECKS ...]]

optional arguments:
  -h, --help            show this help message and exit
  -d, --diagnose        run all erdma basic diagnoses
  -D DIAGNOSES [DIAGNOSES ...], --diagnoses DIAGNOSES [DIAGNOSES ...]
                        list all basic diagnoses you want to run, separated by
                        space. Choices are: erdma device erdma installed erdma
                        loaded ibverbs loaded erdma tools hca detected hca
                        active erdma stats network config erdma dmesg atomic
                        support go-back-n support erdma install mode kernel
                        driver version rdma-core version cc algorithm
  --debug               print more detailed debug information
  -H HOSTS [HOSTS ...], --hosts HOSTS [HOSTS ...]
                        host list to run perftest, separated by space
  -p, --perftest        run all performance tests
  -P PERFTESTS [PERFTESTS ...], --perftests PERFTESTS [PERFTESTS ...]
                        list all perftests you want to run, separated by
                        space. Choices are: send_lat read_lat write_lat
  -k KEY_FILE, --key-file KEY_FILE
                        private key file path
  -s MESSAGE_SIZE, --message-size MESSAGE_SIZE
                        message size for perftest
  -u USER, --user USER  username for ssh connection
  -i ITERATIONS, --iterations ITERATIONS
                        iterations for perftest
  --hpc-check           check erdma related hpc configuration
  --hpc-checks HPC_CHECKS [HPC_CHECKS ...]
                        list all hpc diagnoses you want to run, separated by
                        space. Choices are: cc algorithm go-back-n support
                        delay-ack disable port dapl1 dapl2

Diagnose basic eRDMA functions

The basic functional test verifies driver installation, network connectivity, and the eRDMA kernel driver's installation mode.

eRDMA basic function diagnostic items

Check item

Description

Expected output

Failure and solution

erdma device

Checks whether an eRDMA device exists.

PASS

FAIL: RDMA was not enabled for the primary ENI, or no secondary ENI with RDMA enabled was attached when the instance was created. See Enable eRDMA for an ECS instance.

erdma installed

Checks whether the eRDMA driver is correctly installed.

PASS

FAIL: The driver is not correctly installed. Verify the installation steps or reinstall the driver. See Step 2: Install the eRDMA driver for an ECS instance.

erdma loaded

Checks whether the eRDMA driver is correctly loaded.

PASS

FAIL: The driver is not loaded. This can occur if the host was not restarted after installation. Run modprobe erdma to resolve.

ibverbs loaded

Checks whether the ib_verbs driver is correctly loaded.

PASS

FAIL: Run modprobe ib_uverbs to resolve.

erdma tools

Checks whether eRDMA-related tools are installed.

PASS

FAIL: Run eadm | rdma | ibv_devinfo to identify missing tools. These tools are installed with the eRDMA driver. Verify the installation steps or reinstall. See Step 2: Install the eRDMA driver for an ECS instance.

hca detected

Checks whether the user-space driver correctly detects the eRDMA device.

PASS

FAIL: One of the prerequisite checks (erdma device, erdma installed, erdma loaded, or ibverbs loaded) failed. Ensure the eRDMA driver is installed and loaded.

hca active

Checks whether the ENI corresponding to the eRDMA device is in a normal state.

PASS

FAIL: The ENI corresponding to the eRDMA device is not UP. This may occur in older kernel versions. Run dhclient -v ethx to enable the eth device, then verify the eRDMA device is ACTIVE. See Verify the eRDMA configuration.

erdma stats

Checks whether the eRDMA device has error counters.

PASS

  • SKIP: The operating system may not support rdma stat.

  • FAIL: Error counters may exist. Provide the output of rdma -p stat when contacting technical support.

network config

Checks whether network connectivity is normal.

PASS

FAIL: Multiple network interfaces have IP addresses in the same subnet, which can cause eRDMA to malfunction.

erdma dmesg

Checks for eRDMA-related kernel alerts.

PASS

FAIL: Kernel alerts related to eRDMA are present. Check alert details and try reloading the driver.

atomic support

Checks whether the eRDMA device supports RDMA atomic operations.

PASS

FAIL: The eRDMA device does not support RDMA atomic operations. Ignore this if your application does not require atomic operations.

Note

An atomic operation performs memory operations at the atomic level to ensure integrity and consistency. This feature applies only to specific use cases.

go-back-n support

Checks whether the eRDMA device supports the Go-back-N feature.

PASS

  • SKIP: The eRDMA device may not support querying Go-back-N configuration.

  • FAIL: The eadm tool may not be installed, or the eRDMA device may not support Go-back-N.

Note

Go-back-N is an extended eRDMA feature for specific use cases. Ignore related errors if not required.

erdma install mode

Installation mode of the eRDMA kernel driver.

FAIL: Installation mode not found. This may occur if the erdma loaded check failed. Reinstall the eRDMA driver. See Step 2: Install the eRDMA driver for an ECS instance.

kernel driver version

Version of the eRDMA kernel driver.

Current eRDMA kernel driver version, for example, 0.2.37.

FAIL: Kernel driver version not found. This may occur if the erdma loaded or erdma tools check failed. Ensure the eRDMA driver is installed and loaded. See Verify the eRDMA configuration.

rdma-core version

Version of the eRDMA user-space driver.

eRDMA user-space driver version, for example, 44.1-2.

FAIL: User-space driver version not found. The user-space driver may not be correctly installed. Reinstall the eRDMA driver. See Step 2: Install the eRDMA driver for an ECS instance.

cc algorithm

CC algorithm currently used by eRDMA.

eRDMA CC algorithm, for example, hpcc_rtt.

FAIL: CC algorithm not found. This may occur if the erdma loaded or erdma tools check failed. Ensure the eRDMA driver is installed and loaded.

Procedure:

  1. Log on to the eRDMA-configured instance.

    See Connect to a Linux instance by using Workbench.

  2. Download the diagnose tool.

    • Download from an internal URL

      wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py
    • Download from a public URL

      wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
  3. Check the basic functions of eRDMA:

    python diagnose.py -d

    The following is an example output. For diagnostic item descriptions, see eRDMA basic function diagnostic items.

    [root@jxxx            ~]# python diagnose.py -d
    [INFO] Begin to run erdma basic diagnoses. It's better to ensure that erdma driver and related tools, e.g. eadm, ibv_devinfo, rdma, have been installed.
    [INFO] The diagnose results mean:
    [INFO] PASS: pass the test or meet the requirement.
    [INFO] SKIP: encounter some problems when running the diagnose.
    [INFO] FAIL: test failed or requirements are not met.
    [INFO] XXXX: the erdma-related information, e.g. erdma driver version, cc algorithm.
            Name                Result                          Desc                                                    fail info
    ------------------------------------------------------------------------------------------------------------------------------
         erdma device           PASS        erdma pci device is present
       erdma installed          PASS        erdma module has been installed
         erdma loaded           PASS        erdma module has been loaded
        ibverbs loaded          PASS        ib_uverbs module has been loaded
          erdma tools           PASS        eadm|rdma|ibv_devinfo tools have been installed
         hca detected           PASS        IB device exist
          hca active            PASS        status is PORT_ACTIVE
          erdma stats           PASS        no failed counter
        network config          PASS        network configuration seems ok
          erdma dmesg           PASS        no concerning error logs detected
        atomic support          PASS        atomic capacity support
      go-back-n support         FAIL        Go-back-N capacity support                    CHCK FAILED [eadm info -t ext_attr -d erdma_0 | grep -w attr_mask | awk '{print $2}']
      erdma install mode      Standard      erdma installation mode
    kernel driver version      0.2.37       erdma kernel driver version
      rdma-core version        44.1-2       rdma-core version
         cc algorithm          hpcc_rtt     current cc algorithm

Diagnose the eRDMA HPC environment

HPC applications in an eRDMA environment may require additional dependencies and configurations. The diagnose tool checks for these dependencies.

eRDMA HPC environment dependency checks

The HPC dependency check verifies the CC algorithm, Go-back-N status, and DAPL 1.0/2.0 dependencies. If you do not use certain dependencies, ignore the related errors.

Check item

Description

Expected output

Failure and solution

cc algorithm

CC algorithm currently used by eRDMA.

eRDMA CC algorithm, for example, hpcc_rtt.

FAIL: CC algorithm not found. The eadm tool may not be correctly installed or may not support querying the CC algorithm.

go-back-n support

Checks whether the eRDMA device supports the Go-back-N feature.

PASS

  • SKIP: The eRDMA device may not support querying Go-back-N configuration.

  • FAIL: The eadm tool may not be installed, or the eRDMA device may not support Go-back-N.

This feature may affect HPC applications. Ignore if not required.

dapl1 install

Checks whether dapl1 is correctly installed.

PASS

FAIL: Shared libraries or configuration files for dapl1 are missing. Verify the dapl1 installation. Ignore if dapl1 is not required.

dapl1 config

Checks whether eRDMA is configured in the dapl1 configuration file.

PASS

FAIL: No eRDMA configuration found in the dapl1 config file. Add eRDMA configuration to the file. Ignore if dapl1 is not required.

dapl2 install

Checks whether dapl2 is correctly installed.

PASS

FAIL: Shared libraries or configuration files for dapl2 are missing. Verify the dapl2 installation. Ignore if dapl2 is not required.

dapl2 config

Checks whether eRDMA is configured in the dapl2 configuration file.

PASS

FAIL: No eRDMA configuration found in the dapl2 config file. Add eRDMA configuration to the file. Ignore if dapl2 is not required.

dapl2 test

Checks whether dapl2 dtest runs normally.

PASS

FAIL: dtest failed. dapl2 may not be correctly installed or configured.

Procedure:

  1. Log on to the eRDMA-configured instance.

    See Connect to a Linux instance by using Workbench.

  2. Download the diagnose tool.

    • Download from an internal URL

      wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py
    • Download from a public URL

      wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
  3. Check HPC environment dependencies:

    python diagnose.py --hpc-check

    Example output. For diagnostic item descriptions, see eRDMA HPC environment dependency checks.

    ecs-user@xxx ~$ python diagnose.py --hpc-check
    [INFO] Begin to run hpc related diagnoses for erdma. If the missing dependencies are not required, please ignore them.
    [INFO] The diagnose results mean:
    [INFO] PASS: pass the test or meet the requirement.
    [INFO] SKIP: encounter some problems when running the diagnose.
    [INFO] FAIL: test failed or requirements are not met.
    [INFO] XXXX: the erdma-related information, e.g. erdma driver version, cc algorithm.
            Name                Result              Desc                                          fail info
    ----------------------------  -------------------  -------------------------------------------------------  -------------------
        cc algorithm              cubic               current cc algorithm
      go-back-n support           PASS                Go-back-N capacity support
        dapl1 install             FAIL                dapl1 installation check                     CHCK FAILED [ls /etc/rdma/compat-dapl/dat.conf && ls /usr/lib64/libdaplcma.so.1.0.2]
        dapl2 install             PASS                dapl2 installation check
        dapl2 config              PASS                dapl2 erdma configuration check
        dapl2 test                PASS                dapl2 dtest result

Evaluate eRDMA network performance

Use the perftest feature in the diagnose tool to test network performance between instances.

  • Prerequisites

    Before running the test:

    • eRDMA is installed and deployed on all test nodes. See Enable eRDMA for an ECS instance.

    • Passwordless SSH is configured among all test nodes. See Configure passwordless SSH logon.

    • Python paramiko is installed on all test nodes.

      Note
      • The diagnose tool uses paramiko for remote connections.

      • Install paramiko with the following commands. Python 3 is recommended.

      Alibaba Cloud Linux/CentOS

      # python3
      sudo python3 -m pip install --upgrade pip
      sudo python3 -m pip install paramiko 
      # python2
      # If the pip module is not installed for Python 2, install python2-pip.
      sudo yum -y install python2-pip
      sudo python2 -m pip install --upgrade pip==20.3.4
      sudo python2 -m pip install paramiko 

      Ubuntu

      # python3
      sudo python3 -m pip install --upgrade pip
      sudo python3 -m pip install paramiko
      # python2
      # If python2-pip is not installed on the current node, install it.
      sudo apt install software-properties-common
      sudo add-apt-repository universe
      sudo apt update
      sudo apt install python2
      sudo curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
      sudo python2 get-pip.py
      sudo python2 -m pip install --upgrade pip==20.3.4
      sudo python2 -m pip install paramiko
  • Procedure

    1. Log on to the eRDMA-configured instance.

      See Connect to a Linux instance by using Workbench.

    2. Download the diagnose tool.

      • Download from an internal URL

        wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py
      • Download from a public URL

        wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
    3. Test eRDMA latency:

      python diagnose.py --perftest --hosts <n1> <n2> --user <username> --key-file </path/to/private_key>

      Parameters:

      • --hosts <n1> <n2>: Test nodes, separated by spaces. Replace <n1> <n2> with the private IP address of the eRDMA-enabled ENI on each node.

      • --user <username>: Username for passwordless SSH.

      • --key-file </path/to/private_key>: Absolute path to the private key file for SSH.

      Example output for two-instance latency test. See eRDMA network performance tests.

      Each table shows latency for different operations. Rows represent requesters, columns represent responders. Cell values show average latency in microseconds (99.9th percentile in parentheses).

      [ecs-xxx                ~]$ python diagnose.py --perftest --hosts 172.17.0.87 172.17.0.86 --user ecs-user --key-file /home/ecs-user/.ssh/id_rsa
      /usr/local/lib/python3.6/site-packages/paramiko/transport.py:32: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team.
      or Python 3.6.
        from cryptography.hazmat.backends import default_backend
      INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_8.0)
      INFO:paramiko.transport:Authentication (publickey) successful!
      INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_8.0)
      INFO:paramiko.transport:Authentication (publickey) successful!
      [INFO] Begin to run perftest, the results will be shown in table.
      [INFO] In each table, the line represents client while the column represents server.
      [INFO] Each table cell shows the average latency and p999 latency(in the bracket).
      [INFO] Current perftest configuration:
      [INFO] tests: send_lat read_lat write_lat message_size: 2 iterations: 10000
      ----------------------------------------------------------------------
      |            ib_send_lat latency table(us)                           |
      ----------------------------------------------------------------------
      |               |    172.17.0.87    |    172.17.0.86                 |
      ----------------------------------------------------------------------
      |  172.17.0.87  |   14.60(87.53)    |   14.29(25.25)                 |
      ----------------------------------------------------------------------
      |  172.17.0.86  |   14.35(51.63)    |    8.31(21.09)                 |
      ----------------------------------------------------------------------
      
      ----------------------------------------------------------------------
      |            ib_read_lat latency table(us)                           |
      ----------------------------------------------------------------------
      |               |    172.17.0.87    |    172.17.0.86                 |
      ----------------------------------------------------------------------
      |  172.17.0.87  |   24.28(51.43)    |   27.57(57.42)                 |
      ----------------------------------------------------------------------
      |  172.17.0.86  |   27.43(41.14)    |   13.88(49.83)                 |
      ----------------------------------------------------------------------
      
      ----------------------------------------------------------------------
      |            ib_write_lat latency table(us)                          |
      ----------------------------------------------------------------------
      |               |    172.17.0.87    |    172.17.0.86                 |
      ----------------------------------------------------------------------
      |  172.17.0.87  |  183.71(25003.59) |   12.76(27.00)                 |
      ----------------------------------------------------------------------
      |  172.17.0.86  |   12.80(26.05)    |    6.41(13.75)                 |
      ----------------------------------------------------------------------