RoCEv2网络部署----Mellanox网卡配置

2023-12-01 03:30

本文主要是介绍RoCEv2网络部署----Mellanox网卡配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Mellanox 网卡配置RoCEv2步骤,

1. 设置RDMA CM 模式v2
cma_roce_mode -d mlx5_1 -p 1 -m 2
检查RDMA CM的RoCE模式
在这里插入图片描述
2. 开启 DCQCN 在priority 3
echo 1 > /sys/class/net/ens1np0/ecn/roce_np/enable/3
echo 1 > /sys/class/net/ens1np0/ecn/roce_rp/enable/3
DCQCN优先级为priority 3
在这里插入图片描述

3. 设置CNP DSCP or 802p (PCP) priority
echo 48 > /sys/class/net/ens1np0/ecn/roce_np/cnp_dscp
echo 6 > /sys/class/net/ens1np0/ecn/roce_np/cnp_802p_prio
设置CNP dscp 和802p(PCP),dscp=48
在这里插入图片描述
4. 设置网卡QoS
查看网卡默认当前配置
mlnx_qos -i ens1np0 网卡当前配置
在这里插入图片描述

设置队列3 PFC,后面打流测试让RoCEv2流量跑在队列3中,
mlnx_qos -i ens1np0 -f 0,0,0,1,0,0,0,0 开启priority 3 pfc

在这里插入图片描述

默认priority 0 对应tc1,priority 1 对应tc0,调整成一一对应,看实际情况也可以不调整。
mlnx_qos -i ens1np0 -p 0,1,2,3,4,5,6,7 设置priority和tc对应关系

在这里插入图片描述
一般默认的协议报文跑在队列7,CNP dscp=48 跑在队列6,所以这两个队列优先调度,其它0-5轮询调度,RoCEv2流量在队列3可以加大权重。
mlnx_qos -i ens1np0 -s ets,ets,ets,ets,ets,ets,strict,strict -t 10,10,10,50,10,10,0,0 设置出向队列调度,tc7,tc6严格优先级,tc0-5按权重轮询
在这里插入图片描述

一般队列6和7流量不会很大,可以适当设置限速。
mlnx_qos -i ens1np0 -r 0,0,0,0,0,0,30,20 队列限速
在这里插入图片描述

网卡优先级类型默认802p(PCP),改成dscp。
mlnx_qos -i ens1np0 --trust=dscp 设置接口信任dscp
在这里插入图片描述
5. 网络交换机上配置相应的队列3 FPC,ECN
网络设备如何部署,可以参考这篇文章RoCEv2网络部署实践一起看。

使用ib_send_bw 命令可以打流测试,参数加上 -T 96 可以设置RoCEv2流量的TOS 96 也就是dscp=24 对应priority 3
client 端:
ib_send_bw -d mlx5_1 --report_gbits -F --run_infinitely -R -T 96 192.168.1.99
server 端:
ib_send_bw -d mlx5_1 --report_gbits -F --run_infinitely -R -T 96
在这里插入图片描述
5. wireshark抓包
Priority 3 开启ecn能力的流量,ecn=10,dscp=24
在这里插入图片描述过滤ip.dsfield.ecn == 0x3 ,拥塞置位的ecn报文
在这里插入图片描述
过滤 infiniband.bth.opcode == 0x81,CNP报文 dscp=48

在这里插入图片描述

这篇关于RoCEv2网络部署----Mellanox网卡配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/439618

相关文章

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

如何配置Spring Boot中的Jackson序列化

《如何配置SpringBoot中的Jackson序列化》在开发基于SpringBoot的应用程序时,Jackson是默认的JSON序列化和反序列化工具,本文将详细介绍如何在SpringBoot中配置... 目录配置Spring Boot中的Jackson序列化1. 为什么需要自定义Jackson配置?2.

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Spring中配置ContextLoaderListener方式

《Spring中配置ContextLoaderListener方式》:本文主要介绍Spring中配置ContextLoaderListener方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录Spring中配置ContextLoaderLishttp://www.chinasem.cntene

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas