全部产品
Search
文档中心

云服务器 ECS:弹性RDMA网卡(ERI)

更新时间:Dec 27, 2024

弹性RDMA网卡(Elastic RDMA Interface,简称ERI)是一种可以绑定到ECS实例的虚拟网卡,它是实现eRDMA功能的关键组件。ERI依附于弹性网卡(ENI),在弹性网卡的基础上开启RDMA的功能。

功能介绍

在ECS实例上配置eRDMA,需要为实例绑定弹性RDMA网卡。eRDMA是阿里云提供的低延迟、大吞吐、高弹性的高性能RDMA网络服务。通过ERI,eRDMA能够在ECS实例上实现超低延迟和高吞吐量的网络通信。详细信息,请参见eRDMA概述

目前只有部分实例规格支持绑定弹性RDMA网卡,详细信息,请参见实例规格族

您可以通过DescribeInstanceTypes返回参数中的EriQuantity的值,查询实例规格支持绑定ERI的最大数量(0表示不支持弹性RDMA接口)。

实例绑定多个弹性RDMA接口时,需要考虑网卡的队列对数量限制。详细信息,请参见队列对(QP)数

创建弹性RDMA网卡

随实例创建ERI

对于支持eRDMA的实例规格,您可以在购买实例的时候选择开启网卡的弹性RDMA接口。不同类型的实例的具体配置可能不同:

单独创建ERI

在创建辅助弹性网卡时,启动增加弹性RDMA接口。ERI会共用该辅助弹性网卡的设置,包括弹性网卡的IP、应用于弹性网卡的安全组规则等。具体操作,请参见创建辅助弹性网卡

image

通过OpenAPI创建ERI

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

弹性RDMA网卡的管理,如绑定和解绑、修改属性等操作,请参见管理弹性网卡

查看弹性RDMA网卡

在控制台查看

您可以在控制台查看弹性网卡是否开启RDMA接口。

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 找到目标ECS实例,点击实例ID进入实例详情页。

  4. 选择弹性网卡页签,可以看到目标ECS实例绑定的弹性网卡的详细信息。

    网卡类型列,可以看到弹性RDMA接口标志,这表示网卡开启了弹性RDMA接口。

    image

通过OpenAPI查看

您可以通过DescribeNetworkInterfaceAttribute查询网卡属性,返回参数中的NetworkInterfaceTrafficMode的值表示网卡是否开启ERI:

  • Standard:使用 TCP 通讯模式。

  • HighPerformance:开启 ERI(Elastic RDMA Interface)接口,使用 RDMA 通讯模式。

在实例内部查看

当实例绑定的弹性网卡开启弹性RDMA接口后,您可以在实例内部查看RDMA网卡。

  1. 远程登录实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  2. 执行以下命令,查看RDMA网卡设备。

    ibv_devices

    通过返回的设备名称,可以看到是eRDMA网卡设备。

    image

    如果您的实例绑定了多个开启弹性RDMA接口的网卡设备,输出如下所示:

    image

您可以通过ibv_devinfo查看弹性RDMA网卡更多配置参数,如端口状态、支持的最大队列数等。

image

修改已创建弹性网卡的RDMA接口

开启弹性网卡的RDMA接口

您可以通过ModifyNetworkInterfaceAttribute,将NetworkInterfaceTrafficMode参数的值设置为HighPerformance,将NetworkInterfaceId参数的值设置为弹性网卡ID(主网卡或辅助弹性网卡),从而为指定的弹性网卡开启ERI

说明

您无法在控制台上为已创建的弹性网卡开启弹性RDMA接口。

关闭弹性网卡的RDMA接口

目前已开启弹性RDMA接口的网卡无法关闭弹性RDMA接口,但您可以通过为实例绑定、解绑辅助弹性网卡的方式,实现ECS实例弹性RDMA接口的启用和关闭,详细信息,请参见绑定辅助弹性网卡解绑辅助弹性网卡

队列对(QP)数

QP(Queue Pair)是RDMA中的基本通信实体,由一个发送队列(Send Queue,SQ)和一个接收队列(Receive Queue,RQ)组成。QP负责管理发送和接收的数据。

队列对(QP)数是指一个RDMA设备或网络接口上可以创建的最大队列对QP数量,它决定了RDMA网络可以支持的最大并发连接数,影响网络的扩展性和并发处理能力。

实例的QP数

实例的QP数量和规格有关,当您为ECS实例绑定多张弹性RDMA网卡时,根据实例规格不同,所允许的所有网卡的QP数量的上限不同,您可以通过DescribeInstanceTypes查询对应实例规格所允许的所有网卡的QP数量上限

  • 企业级CPU实例:返回参数中的QueuePairNumber的值,即实例规格允许的所有弹性RDMA网卡的QP数量上限。

弹性RDMA网卡的QP数

弹性RDMA网卡在未设置QueuePairNumber绑定到实例上时,实际生效的默认值即实例规格所允许的所有网卡的QP数上限。对于支持多弹性RDMA网卡的实例规格,如果您已经附加了一个未设置QueuePairNumber的弹性RDMA网卡,那么将不能再继续附加更多的弹性RDMA网卡。您需要调整弹性网卡的QP数在上限范围内,然后再附加到实例上。

设置弹性网卡的QP数

您可以通过ModifyNetworkInterfaceAttribute,设置QueuePairNumber参数的值为指定的网卡QP数。

重要
  • 如果网卡已经绑定在实例上,需要先停止实例再调整。

  • 对于辅助弹性网卡,您可以先解绑实例,修改QueuePairNumber后,再管理弹性网卡

查看弹性网卡的QP数

您可以通过DescribeNetworkInterfaceAttribute查询网卡属性,返回参数中的QueuePairNumber即该弹性网卡的QP数。

说明

当辅助弹性网卡创建完尚未绑定到实例时,不返回此参数。

合理设置QP数

设置合适的QP数量对于优化应用性能非常重要,因为过多或过少的QP都可能导致资源浪费或者成为性能瓶颈。

  1. 理解应用需求:建议您根据应用场景,结合目标实例规格和规划的网卡数量等,确定QP的需求量。如果您的应用程序是高并发、低延迟类型,则可能需要较多的QP来支持更多的并行连接;如果是大数据传输场景,那么单个QP的带宽利用率可能是更重要的考量因素。

  2. 参考硬件限制

    • 不同实例规格所允许的弹性RDMA网卡的最大QP数量不同,具体查询方法,请参见实例规格的QP数

    • 需要考虑服务器内存大小等因素,每个QP都会占用一定的系统资源。

  3. 测试与优化:完成初步配置后,您需要进行实际环境下的性能测试。根据测试结果进一步调整QP数量及其他相关参数。注意观察是否有任何异常情况发生,比如错误信息、丢包率增高等。

  4. 持续监控:即便找到了一个看起来不错的配置方案,也应该定期检查系统的运行状态,确保随着业务增长或其他变化,当前设置仍然适合。

正确设置QP数量是一项需要综合考虑多个因素的工作。建议结合自身业务特点、现有基础设施条件及目标性能要求来进行细致规划与调整。