使用eRDMA

2024-11-26   访问量:1034

eRDMA的能力实现需要基于支持eRDMA能力的实例规格,挂载弹性RDMA网卡(ERI),安装eRDMA驱动,从而实现具有大规模RDMA的网络服务能力,体验RDMA带来的超低延迟。

ECS实例使能eRDMA

选择支持eRDMA的实例规格

为ECS实例绑定ERI

您可以在创建实例的时候为主网卡开启弹性RDMA接口,或者在实例创建后为实例绑定开启了弹性RDMA接口的ERI。

  • 购买实例时候为网卡开启弹性RDMA接口

    具体操作,请参见随实例创建ERI

  • 通过OpenAPI创建开启了ERI的辅助弹性网卡并绑定到实例

    如果您是通过OpenAPI的方式创建并绑定辅助弹性网卡,则操作如下:

    1. 通过OpenAPI创建ERI。

      您可以通过CreateNetworkInterface 创建一个弹性网卡,并设置NetworkInterfaceTrafficMode参数的值为HighPerformance,即创建一个开启了ERI的弹性网卡。

      调用成功后,请记录返回数据中生成的弹性网卡ID(即NetworkInterfaceId对应的返回值)。

    2. 调用AttachNetworkInterface,指定NetworkInterfaceId为上一步返回的网卡ID,指定InstanceId为目标实例ID,即将创建的开启了ERI的弹性网卡绑定到目标实例上。

      重要

      如果您的实例规格支持绑定多个ERI,为了获取最大网络带宽,建议您在绑定时候为每张ERI指定不同的NetworkCardIndex,实现将不同的ERI绑定到不同的通道。详细信息,请参见请求参数

为ECS实例安装eRDMA驱动

重要
  • eRDMA驱动软件由阿里云自研,由阿里云提供技术支持。

  • eRDMA驱动的安装可能需要一段时间,请您耐心等待。

  • 驱动程序安装包

    eRDMA不同安装程序包版本的发布信息(按版本由新到旧排序)

  • 安装eRDMA驱动

    您可以选择在购买实例的时候勾选安装eRDMA驱动,或者为已购买的支持eRDMA的实例手动安装eRDMA驱动。

  • eRDMA内核驱动

    完成eRDMA驱动安装后,您可以通过eadm ver,查询eRDMA的内核驱动版本。目前最新版本1.4.0的安装程序包,对应的erdma内核驱动版本为0.2.37。

    image

验证eRDMA配置的正确性

ibv_devinfo 可以帮助用户验证RDMA功能是否正常工作。通过执行 ibv_devinfo 命令,用户可以获取到设备的硬件属性、端口状态、支持的功能等信息。如果RDMA相关组件已经正常运行,至少会有一个端口的状态是 PORT_ACTIVE,这表明RDMA功能已经激活并且可以正常使用。详细信息,请参见测试RDMA 操作

ibv_devinfo 命令还可以通过 -v 参数来输出更详细的设备信息,包括设备的硬件版本、支持的最大消息大小、队列数、内存窗口大小等。这些信息对于诊断和优化RDMA网络性能非常有用。

您可以通过在实例上执行ibv_devinfo验证实例eRDMA是否配置正确:

  • eRDMA配置正确:为实例的网卡开启弹性RDMA接口并且已正确安装eRDMA驱动。

    说明

    image

    • 如果您的实例支持且绑定了多张弹性RDMA网卡,则实例的每个eRDMA设备的端口state均为PORT_ACTIVE时,表示eRDMA网卡状态正常。

    • 如果eRDMA设备的端口stateinvalid state时,表示该eRDMA网卡状态异常,建议先检查辅助网卡是否配置正确。例如,通过执行ifconfig命令查看所有网卡配置是否存在,所有网卡IP地址是否存在。详细信息,请参见配置辅助弹性网卡

  • 实例未绑定ERI:实例已安装eRDMA驱动,但是网卡未开启弹性RDMA接口。您需要为ECS实例绑定ERI

    image

  • 未正确安装eRDMA所需驱动程序:实例网卡开启弹性RDMA接口,但是未正确安装eRDMA驱动。您需要为ECS实例安装eRDMA驱动

    image

您还可以使用diagnose工具对eRDMA的基础功能进行诊断测试,详细信息,请参见使用diagnose工具检测eRDMA

eRDMA网络性能测试

perftest 是一个用于性能测试的工具集,它提供了多种测试选项,可以针对不同的网络操作进行测试,比如发送、接收、读写等。perftest允许用户测量不同RDMA操作的性能,如延迟和带宽。这些测试通常用于评估RDMA设备和网络的性能,帮助用户优化配置或解决潜在问题。更多信息,请参见perftest相关文档

perftest测试集

perftest包括如下测试,您可以根据实际需求,通过perftest进行网络带宽测试或网络延迟测试,以评估网络的性能。




RDMA操作

带宽测试程序

延迟测试程序

Send

ib_send_bw(发送带宽测试)

ib_send_lat(发送延迟测试)

RDMA Read

ib_read_bw(读带宽测试)

ib_read_lat(读延迟测试)

RDMA Write

ib_write_bw(写带宽测试)

ib_write_lat(写延迟测试)

RDMA Atomic

ib_atomic_bw(原子带宽测试)

ib_atomic_lat(原子延迟测试)

Native Ethernet

raw_ethernet_bw(原生以太网带宽测试)

raw_ethernet_lat(原生以太网延迟测试)

安装perftest

您可以选择开通公网通过官方仓库下载并安装,或者直接通过yum/apt源进行安装。

通过官方仓库下载并安装通过yum/apt源安装
  1. 为ECS实例开通公网,详细信息,请参见为ECS实例开通公网

  2. 访问perftest官方仓库下载并安装perftest工具。

使用perftest示例

您可以将每一个测试程序作为一个独立的命令执行,比如ib_send_lat运行发送延迟测试。

在使用 perftest 进行性能测试时,设置正确的测试参数是非常重要的,通过合理配置这些参数,您可以更精确地控制 perftest 的行为,以满足特定的测试需求,并获取更准确的测试结果。以下是一些关键的参数设置指南,可以帮助您更有效地配置和运行 perftest

常用测试参数说明

相关文档

  • 如果您是在实例当中使用容器方式部署您的应用,希望将eRDMA功能引入容器,实现大规模数据传输和高性能网络通信,您可以参考在容器(Docker)中配置eRDMA

  • 您也可以在ACK(Alibaba Cloud Container Service for Kubernetes)集群中使用eRDMA,可以为运行在集群上的所有服务和应用提供低延迟、高吞吐量的网络通信能力。具体操作,请参见使用eRDMA加速容器网络

  • 如需监测或诊断eRDMA,方便您对eRDMA的运行状态进行实时监控。具体操作,请参见监测和诊断eRDMA

  • 如需将eRDMA集成到您的TCP应用中,请参见应用适配概述



热门文章
更多>