Mellanox网卡qos设置
查看优先级使用的队列
cat /sys/class/net/ens16np0/qos/buffer_size
cat /sys/class/net/ens16np0/qos/prio2buffer
设置网卡出向流量优先级
#tos 104对应dscp 26,tos=dscp*4
echo 104 > /sys/class/infiniband/mlx5_0/tc/1/traffic_class
查看网卡的qos设置
(可以看到pri和dscp的关系)
mlnx_qos -i enp61s0np0
设置网卡的qos
#开启优先级3的pfc
mlnx_qos -i enp61s0np0 -f 0,0,0,1,0,0,0,0
mlnx_qos -i enp61s0np0 -p 0,1,2,3,4,5,6,7
#设置每个优先级的带宽保证,ets 最小带宽保障,数值为百分比,加起来100
mlnx_qos -i enp61s0np0 -s ets,ets,ets,ets,ets,ets,strict,strict -t 40,40,20,1,1,1,0,0
#设置速率限制,0为不限制,单位为G
mlnx_qos -i enp61s0np0 -r 0,0,0,0,0,0,0,0
#设置dscp(IP头携带质量),还可以设置为pcp(vlan头携带)
mlnx_qos -i enp61s0np0 --trust=dscp
#设置速率限制,0为不限制,单位为G
mlnx_qos -i ens10f1np1 --ratelimit=0,0,0,0,4,0,0,0
设置ECN
#启用优先级3的ECN功能
echo 1 > /sys/class/net/ens12f0np0/ecn/roce_np/enable/3
#启用优先级3的CNP功能
echo 1 > /sys/class/net/ens12f0np0/ecn/roce_rp/enable/3
#设置CNP的dscp值
echo 26 > /sys/class/net/ens12f0np0/ecn/roce_np/cnp_dscp
#设置CNP的802.1p值
echo 3 > /sys/class/net/ens12f0np0/ecn/roce_np/cnp_802p_prio
NCCL设置TC
#对应dscp 26
export NCCL_IB_TC=104
不设置NCCL TC,RDMA流量使用网卡设置的dscp( /sys/class/infiniband/mlx5_0/tc/1/traffic_class ),如果没有设置则为0;
设置了NCCL TC,RDMA流量优先使用网卡设置的dscp,如果没有设置则使用NCCL_IB_TC。