更新时间:2024-12-06 GMT+08:00
分享

配置RDMA提升GaussDB(DWS)查询性能

面对高性能计算、大数据分析等IO高并发、低时延应用,现有TCP/IP软硬件架构不能满足应用的需求,这主要体现在传统的TCP/IP网络通信是通过内核发送消息,这种通信方式存在很高的数据移动和数据复制的开销。为解决网络传输中服务器端数据处理的延迟,RDMA(RemoteDirect Memory Access,全称“远程直接内存访问”)应运而生。GaussDB(DWS)支持RDMA/RoCE协议,在高并发大带宽场景下能明显提升查询性能。

RDMA在网络出现丢包时会造成严重的性能下降,RoCE协议没有IB网络支持,需要在以太网上配置PFC(Priority Flow Control)以实现无损网络。

操作步骤

  1. 官方驱动安装。

    1. 下载官方驱动安装。

      以mellanox为例,参考以下链接获取对应OS的5.4版本。

      https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/

    2. 安装驱动。

      解压驱动包后,调用./mlnxofedinstall命令进行安装,如果提示OS版本不匹配,需执行以下命令重新打包安装包后,使用新的安装包安装。

      1
      ./mlnxofedinstall --force --without-fw-update --add-kernel-support
      

  2. 主机侧PFC配置。

    root用户下执行以下命令。其中,enp1s0f0需替换成实际的RDMA网卡名称。

    1
    mlnx_qos -i enp1s0f0 --pfc 1,0,0,0,0,0,0,0 --trus dscp
    

    命令PFC配置输出priority 0队列下均为打开状态,表示配置成功。

    • 如果使用bond网络,需要对每个RDMA网卡都进行配置,bond网卡对应的物理网卡通过cat /proc/net/bonding/bond0命令查询。
    • mlnx_qos命令需要加入/etc/rc.d/rc.local进行持久化配置。

  3. 交换机侧PFC配置。

    交换机配置需要由专业人员实施,避免破坏网络环境。

    以下操作中的端口名称需替换成实际的RoCE网络使用的端口名称,需对每个端口都进行相同操作,或者把使用RoCE网络的端口组成port-group统一配置。
    1. 配置PFC协议。
      1
      2
      3
      4
      sys
      interface 端口名称
      dcb pfc enable mode manual
      commit
      
    2. 配置优先级。
      1
      2
      3
      dcb pfc
      priority 0
      commit
      
    3. 配置ECN协议。
      1
      2
      3
      interface 端口名称
      qos queue 0 ecn
      commit
      
    4. 持久化配置。

      配置完成后使用dis cur命令可以查看配置是否生效。

      1
      dis cur | in pfc
      

      确认无误后,使用save命令保存参数进行持久化配置。

相关文档