服务器配置
CPU | 2* AMD EPYC 7302 16-Core Processor |
---|---|
内存 | 32*64GB=2TB DDR4 RECC 3200MT/s |
2.5英寸硬盘 | SSD 7.6T U.2 数据中心2.5 读盘密集型 |
IB网卡 | Mellanox Technologies MT2892 Family [ConnectX-6 Dx] |
电源 | 电源模块 1U 1200W (1+1) |
网络环境
一台H3C S9850-32H连接分别连接100G网卡模块
系统环境
Ubuntu 20.04.6 LTS
安装
两台都安装mellanox的ofed工具
ubuntu2004 ofed下载链接:
tar zxvf MLNX_OFED_LINUX-23.07-0.5.1.2-ubuntu20.04-x86_64.tgz cd MLNX_OFED_LINUX-23.07-0.5.1.2-ubuntu20.04-x86_64/ ./mlnxofedinstall
ubuntu20.04 cuda下载链接:CUDA Toolkit Archive | NVIDIA Developer
就可以正常识别mlx5_0了。
每台主机开启ECN和PFC,配置如下:
mst start
mst status
show_gids
mlnx_qos -i ens3f0np0 --trust dscp
ethtool -i ens3f0np0
cd /sys/kernel/debug/mlx5/0000\:01\:00.0/cc_params/
echo 48 > np_cnp_dscp cat /sys/kernel/debug/mlx5/0000\:01\:00.0/cc_params/np_cnp_dscp
lldptool -T -i ens3f0np0 -V PFC enabled=5 mlnx_qos -i ens3f0np0
echo 1 > /sys/class/net/ens3f0np0/ecn/roce_np/enable/5
echo 1 > /sys/class/net/ens3f0np0/ecn/roce_rp/enable/5
cat /sys/class/net/ens3f0np0/ecn/roce_np/enable/5
cat /sys/class/net/ens3f0np0/ecn/roce_rp/enable/5
echo 160 > /sys/class/infiniband/mlx5_0/tc/1/traffic_class
cma_roce_tos -d mlx5_0 -t 160
sysctl -w net.ipv4.tcp_ecn=1
apt-get update -y && apt-get install lldpad -y
配置开机脚本,让配置生效,rocev2.sh脚本如下:
#!/bin/bash
for mlx_dev in $(ibdev2netdev |grep -i up| awk '{print $1}')
do
if_dev=$(ibdev2netdev | grep -i up |grep $mlx_dev | awk '{print $5}')
echo "------------> Current: ${mlx_dev}:${if_dev}"
ifconfig "${if_dev}" mtu 9416
echo 160 > /sys/class/infiniband/${mlx_dev}/tc/1/traffic_class
cma_roce_tos -d "${mlx_dev}" -t 160
lldptool -T -i ens3f0np0 -V PFC enabled=5
echo 48 >/sys/class/net/${if_dev}/ecn/roce_np/cnp_dscp
echo 1 >/sys/class/net/${if_dev}/ecn/roce_np/enable/5
echo 1 >/sys/class/net/${if_dev}/ecn/roce_rp/enable/5
sysctl -w net.ipv4.tcp_ecn=1
done
在crontab -e中配置让脚本开机运行:
@reboot bash /etc/init.d/rocev2.sh
@reboot echo 160 > /sys/class/infiniband/mlx5_0/tc/1/traffic_class && /usr/sbin/cma_roce_tos -d mlx5_0 -t 160
server:
ib_send_bw --report_gbits --run_infinitely --cpu_util -d mlx5_0 -F -q 5
client:
ib_send_bw --report_gbits --run_infinitely --cpu_util -d mlx5_0 -FD2 172.16.10.1 -q 5
服务端和客户端主要测试命令如下:
server: 172.16.10.3
ibv_devinfo
ibv_devices
ib_write_bw -a -d mlx5_0
ib_send_bw -a -c UD -d mlx5_0 -i 1
ib_send_lat -a -c UD -d mlx5_0 -i 1
ib_send_bw --report_gbits --run_infinitely --cpu_util -d mlx5_0 -F -q 5
client: 172.16.10.4
ibv_devinfo
ibv_devices
ib_write_bw -a -F 172.16.10.3 -d mlx5_0 --report_gbits
ib_send_bw -a -c UD -d mlx5_0 -i 1 172.16.10.3
ib_send_lat -a -c UD -d mlx5_0 -i 1 172.16.10.3
ib_send_bw --report_gbits --run_infinitely --cpu_util -d mlx5_0 -FD2 172.16.10.3 -q 5
sudo cma_roce_mode -d mlx5_0
RoCE v2
如果不是按照如下方式设置:
sudo cma_roce_mode -d mlx5_0 -m 2