验证容器实例是否支持 RDMA
更新时间:2024-11-07 06:26:01
本章节用于介绍如何验证当前容器实例是否支持 RDMA 网络。目前主流的训练容器镜像是基于 Ubuntu(下文的 Ubuntu 版本为 22.04) 构建的,故本章节主要以 Ubuntu 为例进行验证。
前提条件
-
容器实例状态为
运行中
。 -
选择华北 2 区、Super H800、GPU 为 NVIDIA Super H800 80G * 8 的资源。
步骤一:查看镜像系统版本信息
-
执行如下命令,查看系统版本信息。
cat /etc/os-release
回显示例:
PRETTY_NAME="Ubuntu 22.04.3 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.3 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy
步骤二:准备验证环境
-
登录容器实例后台。
-
执行如下命令,安装软件测试包。
apt update && apt install -y infiniband-diags
-
等待安装完成,执行如下命令,查看网卡名称和速率。
ibstatus
回显示例如下,返回结果中各网卡速率(
rate
)均为 400 Gb/sec 符合预期。Infiniband device 'mlx5_0' port 1 status: default gid: fe80:0000:0000:0000:58a2:e103:00c0:51fe base lid: 0x4e sm lid: 0x59 state: 4: ACTIVE phys state: 5: LinkUp rate: 400 Gb/sec (4X NDR) link_layer: InfiniBand Infiniband device 'mlx5_1' port 1 status: default gid: fe80:0000:0000:0000:a088:c203:0012:59fc base lid: 0x4c sm lid: 0x59 state: 4: ACTIVE phys state: 5: LinkUp rate: 400 Gb/sec (4X NDR) link_layer: InfiniBand ... ...
-
执行如下命令,查看 RDMA 相关库是否安装。
dpkg -l perftest ibverbs-providers libibumad3 libibverbs1 libnl-3-200 libnl-route-3-200 librdmacm1
若返回结果中提示
dpkg-query: no packages found matching xxxxx
,则说明有部分 RDMA 相关库未安装,则需执行如下命令,进行安装。apt update && apt install -y perftest ibverbs-providers libibumad3 libibverbs1 libnl-3-200 libnl-route-3-200 librdmacm1
-
等待安装完成,再此执行如下命令,检查软件安装情况。
dpkg -l perftest ibverbs-providers libibumad3 libibverbs1 libnl-3-200 libnl-route-3-200 librdmacm1
若返回结果如下,则说明 RDMA 相关库均已安装完成。
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=======================-============-============-=========================================================== ii ibverbs-providers:amd64 39.0-1 amd64 User space provider drivers for libibverbs ii libibumad3:amd64 39.0-1 amd64 InfiniBand Userspace Management Datagram (uMAD) library ii libibverbs1:amd64 39.0-1 amd64 Library for direct userspace use of RDMA (InfiniBand/iWARP) ii libnl-3-200:amd64 3.5.0-0.1 amd64 library for dealing with netlink sockets ii libnl-route-3-200:amd64 3.5.0-0.1 amd64 library for dealing with netlink sockets - route interface ii librdmacm1:amd64 39.0-1 amd64 Library for managing RDMA connections ii perftest 4.4+0.37-1 amd64 Infiniband verbs performance tests
说明 版本号无需与此示例一致。
步骤三:验证是否支持 RDMA
单机验证方法
-
登录容器实例后台。
-
执行如下命令,启动网卡性能测试。
ib_write_bw -d mlx5_0 &
回显示例:
************************************ * Waiting for client to connect... * ************************************
-
mlx5_0
为网卡设备名称,即执行ibstatus
命令返回结果中存在的设备名。
-
-
继续执行如下命令,验证 RMDA 网络性能。
ib_write_bw -d mlx5_0 127.0.0.1 --report_gbits
回显示例:
--------------------------------------------------------------------------------------- RDMA_Write BW Test Dual-port : OFF Device : mlx5_0 Number of qps : 1 Transport type : IB Connection type : RC Using SRQ : OFF PCIe relax order: ON ibv_wr* API : ON TX depth : 128 CQ Moderation : 1 Mtu : 4096[B] Link type : IB Max inline data : 0[B] rdma_cm QPs : OFF Data ex. method : Ethernet --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- RDMA_Write BW Test Dual-port : OFF Device : mlx5_0 Number of qps : 1 Transport type : IB Connection type : RC Using SRQ : OFF PCIe relax order: ON ibv_wr* API : ON CQ Moderation : 1 Mtu : 4096[B] Link type : IB Max inline data : 0[B] rdma_cm QPs : OFF Data ex. method : Ethernet --------------------------------------------------------------------------------------- local address: LID 0x0e QPN 0x5b59 PSN 0xb3d538 RKey 0x0062b9 VAddr 0x007f0253d3f000 local address: LID 0x0e QPN 0x5b58 PSN 0x209b9a RKey 0x0050b8 VAddr 0x007fa5c92f5000 remote address: LID 0x0e QPN 0x5b58 PSN 0x209b9a RKey 0x0050b8 VAddr 0x007fa5c92f5000 remote address: LID 0x0e QPN 0x5b59 PSN 0xb3d538 RKey 0x0062b9 VAddr 0x007f0253d3f000 --------------------------------------------------------------------------------------- #bytes #iterations BW peak[MB/sec] BW average[MB/sec] MsgRate[Mpps] --------------------------------------------------------------------------------------- #bytes #iterations BW peak[Gb/sec] BW average[Gb/sec] MsgRate[Mpps] Conflicting CPU frequency values detected: 932.784000 != 800.000000. CPU Frequency is not max. 65536 5000 371.22 324.70 0.619322 --------------------------------------------------------------------------------------- 65536 5000 371.22 324.70 0.619322 ---------------------------------------------------------------------------------------
多机验证方法
该验证方式需要两个容器实例进行验证,故所有实例均需参考前文进行环境准备。
-
待所有实例均准备完成后。
-
登录其中一台容器实例(实例 A),执行如下命令,启动网卡性能测试。
ib_write_bw -d mlx5_0 -x 3
回显示例:
************************************ * Waiting for client to connect... * ************************************
-
登录另外一台容器实例(实例 B),执行如下命令,验证 RMDA 网络性能。
ib_write_bw -d mlx5_0 -x3 <HOST_A_IP> --report_gbits
-
其中,
<HOST_A_IP>
为实例 A 的内网 IP 地址,需根据实际情况进行修改,可在容器实例列表页内查看。
-