鲲鹏社区首页
EN
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

配置服务器网卡

  1. 在客户端和服务端查看IB口信息。
    查看设备的名称以及当前的状态是否为Active状态。设备名称一般为hrn3_bond_0。
    <# ibstat
    CA 'hrn3_bond_0'
            CA type:
            Number of ports: 1
            Firmware version:
            Hardware version:
            Node GUID: 0xaedccafffe71b4ee
            System image GUID: 0xaedccafffe71b4ee
            Port 1:
                    State: Active
                    Physical state: LinkUp
                    Rate: 100
                    Base lid: 0
                    LMC: 0
                    SM lid: 0
                    Capability mask: 0x00010000
                    Port GUID: 0xaedccafffe71b4ee
                    Link layer: Ethernet

    ibstat命令依赖于infiniband-diags包,请确认是否正确安装infiniband-diags包,若未安装请手动安装infiniband-diags或者重装OFED。

  2. 如果是首次使用,请为两个网口创建bond。
    1. 将下列配置写入“/etc/sysconfig/network-scripts/ifcfg-ens4f0”
      TYPE=Ethernet
      BOOTPROTO=none
      NAME=ens4f0
      DEVICE=ens4f0
      ONBOOT=yes
      MASTER=bond0
      SLAVE=yes
    2. 将下列配置写入“/etc/sysconfig/network-scripts/ifcfg-ens4f1”
      TYPE=Ethernet
      BOOTPROTO=none
      NAME=ens4f1
      DEVICE=ens4f1
      ONBOOT=yes
      MASTER=bond0
      SLAVE=yes
    3. 将下列配置写入“/etc/sysconfig/network-scripts/ifcfg-bond0”
      DEVICE=bond0
      ONBOOT=yes
      BOOTPROTO=static
      BONDING_MASTER=yes
      BONDING_OPTS='mode=4 xmit_hash_policy=1 miimon=100 updelay=100 downdelay=100 lacp_rate=fast'
      BONDING_SLAVE0=ens4f0
      BONDING_SLAVE1=ens4f1
      USERCTL=no
      MTU=9000
      #配置ipv4地址
      IPADDR=xxx.xxx.xxx.xxx
    4. 重启网络服务。
      systemctl restart NetworkManager.service
    5. 查看ib设备。一般为hrn3_bond_0。
      ibv_devices
          device                 node GUID
          ------              ----------------
          hrn3_bond_0         xxxxxxxxxxxxxxx
  3. 配置qos。
    1. 使能DCB。
      hinicadm3 qos -i ens4f0 -t dcb -e 1
      hinicadm3 qos -i ens4f1 -t dcb -e 1
    2. 队列1使能PFC。
      hinicadm3 qos -i ens4f0 -t pfc -e 1 -f 1,1,0,0,0,0,0,0
      hinicadm3 qos -i ens4f1 -t pfc -e 1 -f 1,1,0,0,0,0,0,0
    3. 使能DSCP。
      hinicadm3 qos -i ens4f0 --dev_trust dscp
      hinicadm3 qos -i ens4f0 --port_trust dscp
      hinicadm3 qos -i ens4f1 --dev_trust dscp
      hinicadm3 qos -i ens4f1 --port_trust dscp
    4. 设置roce流量分配到队列1。
      hinicadm3 qos -i ens4f0 --dev_defcos 1
      hinicadm3 qos -i ens4f0 --port_defcos 1
      hinicadm3 qos -i ens4f1 --dev_defcos 1
      hinicadm3 qos -i ens4f1 --port_defcos 1
    5. 设置CNP流量分配到队列6。
      echo 1 > /sys/class/net/ens4f0/ecn/roce3_ucc/cnp_prio_enable
      echo 6 > /sys/class/net/ens4f0/ecn/roce3_ucc/cnp_prio
    6. TCP和RDMA流量比为3:7。
      hinicadm3 qos -i ens4f0 -t ets -c 0,1,2,3,4,5,6,7 -w 30,70,0,0,0,0,0,0
      hinicadm3 qos -i ens4f1 -t ets -c 0,1,2,3,4,5,6,7 -w 30,70,0,0,0,0,0,0
    7. 开启qp affinity hash。
      hinicadm3 bond_info -i hinic0 -n hrn3_bond_0 -t 1
    8. 开启快重传。
      hinicadm3 roce_fast_retrans -i hinic0 -e 1
    • 若一张网卡存在多个网口,每个网卡口都要配置qos,但是算法使能可能只有一个网口有效,出现no such file是正常的。例如2*100G卡,两个网口都要配,上述配置以ens4f0和ens4f1为例。
    • 开启快重传后才能处理NACK报文。
  4. 配置拥塞算法参数使能user_cc_6。
    1. 配置拥塞算法参数user_cc_6,以使能UCC HITCH为例。
      echo user_cc_6 > /sys/class/net/ens4f0/ecn/cc_algo
      echo 1 > /sys/class/net/ens4f0/ecn/coal_ack_num
      echo 0 > /sys/class/net/ens4f0/ecn/algo_type
    2. 将下列配置写入“/sys/class/net/ens4f0/ecn/roce3_ucc/param0”
      alpha:2:4
      beta:9:4
      gamma:3:4
      eta:6:4
      flag:1:1

      参数说明如表1所示。

      表1 参数说明

      参数

      说明

      user_cc_6

      UCC编程框架提供的一个拥塞算法名称。

      coal_ack_num

      ACK报文聚合参数,默认是6,即收到6个数据包回复1个ACK报文。在测试窗口类拥塞控制算法时,由于窗口类拥塞控制算法基于ACK调窗,需要将coal_ack_num设为1,以获得更好的稳定性。

      algo_type

      当前拥塞算法的类型。

      • 0:表示窗口类型。
      • 1:表示token类型。默认为1。测试HITCH算法时,设置为0。

      alpha

      窗口大于1个MTU增窗因子,默认是2。测试HITCH算法时,设置为推荐值2。

      beta

      窗口大于1个MTU减窗因子,默认是9。测试HITCH算法时,设置为推荐值9。

      gamma

      窗口小于1个MTU增窗因子,默认是6。测试HITCH算法时,设置为推荐值3。

      eta

      窗口小于1个MTU减窗因子,默认是6。测试HITCH算法时,设置为推荐值6。

      flag

      设置拥塞控制算法标志位,默认是0。

      • 当标志位为0时,参数alpha、beta、gamma、eta取默认值。
      • 当标志位为1时,参数alpha、beta、gamma、eta取所设置值。
      • 测试HITCH算法时,设置为推荐值1。

    如果用户需要自定义参数,请参见配置自定义拥塞参数

  5. 配置拥塞算法参数使能user_cc_5。
    1. 配置拥塞算法参数user_cc_5,以使能UCC DCQCN为例。
      echo user_cc_5 > /sys/class/net/ens4f0/ecn/cc_algo
      echo 1 > /sys/class/net/ens4f0/ecn/algo_type
      echo 6 > /sys/class/net/ens4f0/ecn/coal_ack_num
      echo 1 > /sys/class/net/ens4f0/ecn/roce3_ucc/cnp_enable
    2. 将下列配置写入“/sys/class/net/ens4f0/ecn/roce3_ucc/param0”
      rsvd:0:18
      flow_min_rate:1:6
      token_period:16:8
    3. 将下列配置写入“/sys/class/net/ens4f0/ecn/roce3_ucc/param1”
      rate_inc_period:480:10
      rsvd:0:3
      cnp_cnt_threshold:6:4
      alpha_dec_period:160:10
      alpha_threshold:31:5
    4. 将下列配置写入“/sys/class/net/ens4f0/ecn/roce3_ucc/param2”
      rate_inc_ai:2:8
      rate_inc_hai:8:8
      rate_dec_period:32:8
      min_cnp_period:16:8
    5. 将下列配置写入“/sys/class/net/ens4f0/ecn/roce3_ucc/param3”
      factor_gita:7:4
      rt_clamp:1:1
      rsvd:0:1
      initial_alpha:1023:10
      rate_first_set:1024:16

    参数说明如表2所示。

    表2 参数说明

    参数

    说明

    user_cc_5

    UCC编程框架提供的一个拥塞算法名称。

    coal_ack_num

    ACK报文聚合参数,默认是6,即收到6个数据包回复1个ACK报文。测试DCQCN算法时,使用默认值。

    algo_type

    当前拥塞算法的类型。

    • 0:表示窗口类型。
    • 1:表示速率类型。默认为1。测试DCQCN算法时,设置为1。

    cnp_enable

    是否可发送CNP报文,默认值是0,即CNP报文不可发送。测试DCQCN算法时,需要将cnp_enable设为1,设置CNP报文可发送。

    cnp_prio_enable

    CNP流量设置开关,默认是0。设为1。

    cnp_prio

    设置CDP流量所走队列,默认是0。设为6。

    flow_min_rate

    最小发送速率,推荐值是1。测试DCQCN算法时,设置为推荐值。

    token_period

    token更新周期,推荐值是16纳秒,token表示可以发送的字节量。每生成一个token,发送方可以发送对应大小的数据包。测试DCQCN算法时,设置为推荐值。

    rate_inc_period

    速率增加周期,推荐值是480。测试DCQCN算法时,设置为推荐值。

    cnp_cnt_threshold

    阈值,推荐值是6。测试DCQCN算法时,设置为推荐值。

    alpha_dec_period

    速率降低因子α减小周期,推荐值是160。测试DCQCN算法时,设置为推荐值。

    alpha_threshold

    alpha阈值,推荐值是31。测试DCQCN算法时,设置为推荐值。

    rate_inc_ai

    加性升速阶段增速因子,推荐值是2。测试DCQCN算法时,设置为推荐值。

    rate_inc_hai

    超升速阶段增速因子,推荐值是8。测试DCQCN算法时,设置为推荐值。

    rate_dec_period

    速率减少周期,推荐值是32。测试DCQCN算法时,设置为推荐值。

    min_cnp_period

    最小发送CNP周期,推荐值是16。测试DCQCN算法时,设置为推荐值。

    factor_gita

    α更新因子,推荐值是7。测试DCQCN算法时,设置为推荐值。

    rt_clamp

    限制目标速率的参数,推荐值是1。测试DCQCN算法时,设置为推荐值。

    initial_alpha

    速率降低因子α初始化值,推荐值是1023。测试DCQCN算法时,设置为推荐值。

    rate_first_set

    初始发送速率,推荐值是1024。测试DCQCN算法时,设置为推荐值。

    如果用户需要自定义参数,请参见配置自定义拥塞参数

  6. 配置拥塞算法参数使能user_cc_7。
    1. user_cc_7配置拥塞算法参数,以使能UCC TIMELY为例。
      echo user_cc_7 > /sys/class/net/ens4f0/ecn/cc_algo
      echo 1 > /sys/class/net/ens4f0/ecn/algo_type
      echo 6 > /sys/class/net/ens4f0/ecn/coal_ack_num
      echo 1 > /sys/class/net/ens4f0/ecn/roce3_ucc/cnp_enable
      echo 1 > /sys/class/net/ens4f0/ecn/roce3_ucc/cnp_prio_enable
      echo 6 > /sys/class/net/ens4f0/ecn/roce3_ucc/cnp_prio
      echo 1 > /sys/class/net/ens4f0/ecn/roce3_ucc/rtt_enable
      echo 1 > /sys/class/net/ens4f0/ecn/roce3_ucc/rtt_rsp_prio_enable
      echo 6 > /sys/class/net/ens4f0/ecn/roce3_ucc/rtt_rsp_prio
    2. 将下列配置写入“/sys/class/net/ens4f0/ecn/roce3_ucc/param0”。
      min_rtt_shift:11:4
      sigma:4:4
      hai_sigma:15:4
      alpha:256:10
      beta:512:10
    3. 将下列配置写入“/sys/class/net/ens4f0/ecn/roce3_ucc/param1”。
      rtt_low:3500:12
      rtt_high:7000:14
      rtt_first_set:8:4
      rvsd:0:2
    4. 将下列配置写入“/sys/class/net/ens4f0/ecn/roce3_ucc/param2”。
      rsvd:0:32
    5. 将下列配置写入“/sys/class/net/ens4f0/ecn/roce3_ucc/param3”。
      rsvd:0:32

    参数说明如表3所示。

    表3 参数说明

    参数

    说明

    user_cc_7

    UCC编程框架提供的一个拥塞算法名称。

    coal_ack_num

    ACK报文聚合参数,默认是6,即收到6个数据包回复1个ACK报文。测试TIMELY算法时,使用默认值。

    algo_type

    当前拥塞算法的类型。

    • 0:表示窗口类型。
    • 1:表示速率类型。默认为1。

    测试TIMELY算法时,设置为1。

    rtt_enable

    是否开启RTT功能,0:不开启,1:开启。默认是0。测试TIMELY算法时,设置为1。

    rtt_rsp_prio_enable

    RTT响应报文转发队列可配置使能,默认是0。测试TIMELY算法时,设为1。

    rtt_rsp_prio

    设置RTT响应报文所走队列,默认是0。测试TIMELY算法时,设为6。

    cnp_prio

    CNP报文转发队列可配置使能,默认是0。测试TIMELY算法时,设为1。

    cnp_prio

    设置CNP报文所走队列,默认是0。测试TIMELY算法时,设为6。

    min_rtt_shift

    理论最小时延,推荐值是11,即rtt梯度归一化时右移的位数。测试TIMELY算法时,使用推荐值。

    sigma

    加性升速阶段增速因子,推荐值是4。测试TIMELY算法时,使用推荐值。

    hai_sigma

    超升速阶段增速因子(CNP阶段降速因子),推荐值是15。测试TIMELY算法时,使用推荐值。

    alpha

    平滑RTT累计差值(rtt_diff)时的权重,推荐值是256。测试TIMELY算法时,使用推荐值。

    beta

    乘性降速阶段降速因子,推荐值是512。测试TIMELY算法时,使用推荐值。

    rtt_low

    表示burst流量的容忍RTT,推荐值是3500。测试TIMELY算法时,使用推荐值。

    rtt_high

    表示每条流量容忍的最大RTT,推荐值是7000。测试TIMELY算法时,使用推荐值。

    rate_first_set

    初始化算法时的速率,推荐值是8,即使用时将1左移8位。测试TIMELY算法时,使用推荐值。

    如果用户需要自定义参数,请参见配置自定义拥塞参数

  7. 在服务端和客户端执行以下命令进行测试。
    ib_send_bw -d hrn3_bond_0 -i 1 -s 64K --report_gbits --run_infinitely -D 5 #服务端
    ib_send_bw -d hrn3_bond_0 -i 1 IP_Address -s 64K --report_gbits --run_infinitely -D 5 #客户端

    参数说明如表4所示。

    表4 参数说明

    参数

    说明

    hrn3_bond_0

    对应bond0的IB设备名称。

    -i 1

    对应ibstat命令打印信息中CA名称对应的Port。

    IP_Address

    服务端配置的IP地址。

    -D 5

    --duration=<sec>:以秒为单位每个测试间隔的持续时间,推荐5秒。

    测试两端打印如下信息即表示成功。

    ---------------------------------------------------------------------------------------
                        Send BW Test
     Dual-port       : OFF          Device         : hrn3_bond_0
     Number of qps   : 1            Transport type : IB
     Connection type : RC           Using SRQ      : OFF
     PCIe relax order: ON
     ibv_wr* API     : OFF
     TX depth        : 128
     CQ Moderation   : 1
     Mtu             : 4096[B]
     Link type       : Ethernet
     GID index       : 1
     Max inline data : 0[B]
     rdma_cm QPs     : OFF
     Data ex. method : Ethernet
    ---------------------------------------------------------------------------------------
     local address: LID 0000 QPN 0x0020 PSN 0x2b425
     GID: 00:00:00:00:00:00:00:00:00:00:255:255:172:168:01:67
     remote address: LID 0000 QPN 0x0020 PSN 0x42d017
     GID: 00:00:00:00:00:00:00:00:00:00:255:255:172:168:01:69
    ---------------------------------------------------------------------------------------
     #bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
     65536      749427           0.00               78.58              0.149884
     65536      749438           0.00               78.58              0.149887
     65536      749425           0.00               78.58              0.149884
     65536      749435           0.00               78.58              0.149886
     65536      749422           0.00               78.58              0.149884