使用eRDMA
eRDMA的能力实现需要基于支持eRDMA能力的实例规格,挂载弹性RDMA网卡(ERI),安装eRDMA驱动,从而实现具有大规模RDMA的网络服务能力,体验RDMA带来的超低延迟。
ECS实例使能eRDMA
选择支持eRDMA的实例规格
企业级CPU实例:请参见支持eRDMA的企业级实例规格。
GPU实例:请参见支持eRDMA的GPU实例规格。
为ECS实例绑定ERI
您可以在创建实例的时候为主网卡开启弹性RDMA接口,或者在实例创建后为实例绑定开启了弹性RDMA接口的ERI。
购买实例时候为网卡开启弹性RDMA接口
具体操作,请参见随实例创建ERI。
修改ECS实例已绑定的弹性网卡属性,启用ERI
具体操作,请参见修改已创建弹性网卡的RDMA接口。
通过OpenAPI创建开启了ERI的辅助弹性网卡并绑定到实例
如果您是通过OpenAPI的方式创建并绑定辅助弹性网卡,则操作如下:
通过OpenAPI创建ERI。
您可以通过CreateNetworkInterface 创建一个弹性网卡,并设置NetworkInterfaceTrafficMode参数的值为HighPerformance,即创建一个开启了ERI的弹性网卡。
调用成功后,请记录返回数据中生成的弹性网卡ID(即
NetworkInterfaceId
对应的返回值)。调用AttachNetworkInterface,指定NetworkInterfaceId为上一步返回的网卡ID,指定InstanceId为目标实例ID,即将创建的开启了ERI的弹性网卡绑定到目标实例上。
重要如果您的实例规格支持绑定多个ERI,为了获取最大网络带宽,建议您在绑定时候为每张ERI指定不同的NetworkCardIndex,实现将不同的ERI绑定到不同的通道。详细信息,请参见请求参数。
为ECS实例安装eRDMA驱动
eRDMA驱动软件由阿里云自研,由阿里云提供技术支持。
eRDMA驱动的安装可能需要一段时间,请您耐心等待。
驱动程序安装包
安装eRDMA驱动
您可以选择在购买实例的时候勾选安装eRDMA驱动,或者为已购买的支持eRDMA的实例手动安装eRDMA驱动。
企业级CPU实例:请参见在企业级实例上配置eRDMA。
GPU实例:请参见在GPU实例上配置eRDMA。
eRDMA内核驱动
完成eRDMA驱动安装后,您可以通过
eadm ver
,查询eRDMA的内核驱动版本。目前最新版本1.4.0的安装程序包,对应的erdma内核驱动版本为0.2.37。
验证eRDMA配置的正确性
ibv_devinfo
可以帮助用户验证RDMA功能是否正常工作。通过执行 ibv_devinfo
命令,用户可以获取到设备的硬件属性、端口状态、支持的功能等信息。如果RDMA相关组件已经正常运行,至少会有一个端口的状态是 PORT_ACTIVE
,这表明RDMA功能已经激活并且可以正常使用。详细信息,请参见测试RDMA 操作。
ibv_devinfo
命令还可以通过 -v
参数来输出更详细的设备信息,包括设备的硬件版本、支持的最大消息大小、队列数、内存窗口大小等。这些信息对于诊断和优化RDMA网络性能非常有用。
您可以通过在实例上执行ibv_devinfo
验证实例eRDMA是否配置正确:
eRDMA配置正确:为实例的网卡开启弹性RDMA接口并且已正确安装eRDMA驱动。
说明如果您的实例支持且绑定了多张弹性RDMA网卡,则实例的每个eRDMA设备的端口
state
均为PORT_ACTIVE
时,表示eRDMA网卡状态正常。如果eRDMA设备的端口
state
为invalid state
时,表示该eRDMA网卡状态异常,建议先检查辅助网卡是否配置正确。例如,通过执行ifconfig
命令查看所有网卡配置是否存在,所有网卡IP地址是否存在。详细信息,请参见配置辅助弹性网卡。
实例未绑定ERI:实例已安装eRDMA驱动,但是网卡未开启弹性RDMA接口。您需要为ECS实例绑定ERI。
未正确安装eRDMA所需驱动程序:实例网卡开启弹性RDMA接口,但是未正确安装eRDMA驱动。您需要为ECS实例安装eRDMA驱动。
您还可以使用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源进行安装。
通过官方仓库下载并安装
为ECS实例开通公网,详细信息,请参见为ECS实例开通公网。
访问perftest官方仓库下载并安装perftest工具。
通过yum/apt源安装
不同Linux发行版的软件源中包含的perftest版本可能不一致,在通信时可能存在兼容性问题。建议您通信的实例使用相同的Linux发行版,否则请通过官方仓库下载并安装。
Alibaba Cloud Linux 3/CentOS/Anolis OS
sudo yum install perftest -y
Ubuntu
sudo apt install perftest -y
使用perftest示例
您可以将每一个测试程序作为一个独立的命令执行,比如ib_send_lat
运行发送延迟测试。
在使用 perftest
进行性能测试时,设置正确的测试参数是非常重要的,通过合理配置这些参数,您可以更精确地控制 perftest
的行为,以满足特定的测试需求,并获取更准确的测试结果。以下是一些关键的参数设置指南,可以帮助您更有效地配置和运行 perftest
。
网络延迟测试:示例操作,请参见在企业级实例上配置eRDMA。
网络带宽测试:示例操作,请参见在GPU实例上配置eRDMA。
相关文档
如果您是在实例当中使用容器方式部署您的应用,希望将eRDMA功能引入容器,实现大规模数据传输和高性能网络通信,您可以参考在容器(Docker)中配置eRDMA。
您也可以在ACK(Alibaba Cloud Container Service for Kubernetes)集群中使用eRDMA,可以为运行在集群上的所有服务和应用提供低延迟、高吞吐量的网络通信能力。具体操作,请参见使用eRDMA加速容器网络。
如需监测或诊断eRDMA,方便您对eRDMA的运行状态进行实时监控。具体操作,请参见监测和诊断eRDMA。
如需将eRDMA集成到您的TCP应用中,请参见应用适配概述。