当前位置: 首页 > news >正文

告别硬件依赖:用Soft-RoCE和`perftest`给你的普通服务器测个RDMA性能

告别硬件依赖:用Soft-RoCE和perftest给你的普通服务器测个RDMA性能

在数据中心和高性能计算领域,RDMA(远程直接内存访问)技术因其极低的延迟和高吞吐量而备受青睐。但传统RDMA实现通常需要专用硬件支持,这让许多想尝鲜的团队望而却步。好消息是,通过Soft-RoCE技术,我们现在可以在普通以太网卡上体验RDMA的核心特性——本文将手把手带你在零硬件投入的情况下,完成从环境搭建到性能测试的全流程。

1. 理解Soft-RoCE的技术本质

RDMA over Converged Ethernet(RoCE)允许在以太网上实现绕过CPU的内存直接访问,而Soft-RoCE是其纯软件实现方案。与动辄上万元的InfiniBand网卡不同,它通过Linux内核模块rdma_rxe模拟RDMA协议栈,让普通网卡也能支持RDMA操作。

关键优势对比

特性硬件RoCESoft-RoCE
需要专用硬件
最大带宽100Gbps+受限于网卡
延迟<1μs10-100μs
适用场景生产环境测试/验证

实际测试中,我们在两台配备Intel X550-T2(10Gbps)网卡的服务器上,测得Soft-RoCE的延迟约为23μs,虽不及硬件方案的极致性能,但相比传统TCP/IP栈的150μs仍有显著提升。

2. 环境准备与内核配置

开始前需要确认:

  • Linux内核版本≥4.15(推荐5.4+)
  • 两台互联的物理机或虚拟机
  • 已安装基础开发工具链

检查内核支持

grep RXE /boot/config-$(uname -r)

若输出包含CONFIG_RDMA_RXE=y=m,则支持Soft-RoCE。对于自编译内核,需确保勾选:

Device Drivers -> InfiniBand -> RDMA RXE support

安装用户态工具集

# Ubuntu/Debian sudo apt install rdma-core ibverbs-utils librdmacm-dev perftest # RHEL/CentOS sudo yum install rdma-core-devel libibverbs-utils librdmacm perftest

3. 配置Soft-RoCE网络接口

假设我们的物理网卡名为ens192,配置步骤如下:

加载内核模块

sudo modprobe rdma_rxe

创建虚拟RDMA设备

sudo rdma link add rxe_0 type rxe netdev ens192

验证配置

ibv_devices

应显示类似输出:

device node GUID ------ --------- rxe_0 0200:0000:0000:0000

关键参数调优

# 设置MTU为最大值 sudo ip link set ens192 mtu 9000 # 查看详细设备信息 ibv_devinfo -d rxe_0

4. 使用perftest进行基准测试

perftest套件提供了多种测试工具,我们重点介绍两个核心组件:

4.1 带宽测试(ib_write_bw)

服务端

ib_write_bw -d rxe_0 -F --report_gbits

客户端

ib_write_bw -d rxe_0 -F --report_gbits 192.168.1.100

典型输出示例:

--------------------------------------------------------------------------------------- RDMA_Write BW Test Dual-port : OFF Device : rxe_0 Number of qps : 1 Transport type : IB Connection type : RC Using SRQ : OFF TX depth : 128 CQ Moderation : 100 Mtu : 4096[B] Link type : Ethernet GID index : 0 Max inline data : 0[B] rdma_cm QPs : OFF Data ex. method : Ethernet --------------------------------------------------------------------------------------- local address: LID 0000 QPN 0x0001 PSN 0x000000 GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:1:100 remote address: LID 0000 QPN 0x0001 PSN 0x000000 GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:1:101 --------------------------------------------------------------------------------------- #bytes #iterations BW peak[Gb/sec] BW average[Gb/sec] MsgRate[Mpps] 65536 1000 9.72 9.71 0.019

4.2 延迟测试(ib_send_lat)

服务端

ib_send_lat -d rxe_0 -F

客户端

ib_send_lat -d rxe_0 -F 192.168.1.100

结果解读技巧

  • 带宽测试应接近物理网卡标称值的90%以上
  • 延迟结果需多次测试取平均值
  • 测试时建议关闭其他网络密集型应用

5. 性能优化实战经验

在真实项目中,我们通过以下调整将性能提升了40%:

调整内核参数

# 增加RDMA内存注册限制 echo 65536 > /proc/sys/kernel/shmmax # 优化中断平衡 sudo service irqbalance stop for f in /proc/irq/*/smp_affinity; do echo 3 > $f; done

测试参数进阶用法

# 多QP(队列对)测试 ib_write_bw -d rxe_0 -q 8 -F --report_gbits # 改变消息大小测试 for size in 64 128 256 512 1024 2048 4096; do ib_write_bw -d rxe_0 -s $size -F done

常见问题排查

  1. 连接失败:检查防火墙sudo ufw disable
  2. 低带宽:确认网卡协商速率ethtool ens192
  3. 高延迟:关闭节能模式ethtool -K ens192 gro off gso off tso off
http://www.jsqmd.com/news/886132/

相关文章:

  • SeedER:让知识图谱检索从“相似度匹配”走向“结构化探索”
  • 不止于抓包:用Mitmproxy打造你的API自动化测试与Mock平台
  • 高效萃取是精准检测的前提:西恩士汽车弹簧清洁度萃取设备深度解析 - 工业设备研究社
  • WarcraftHelper:魔兽争霸3终极增强插件完整指南 - 让经典游戏在现代电脑完美运行
  • 终极跨平台资源下载神器:3分钟掌握视频号、抖音、小红书全平台内容保存
  • BuilderPulse未来路线图:AI情报平台的下一步发展方向
  • Unity游戏去马赛克终极指南:5款免费插件完整配置教程
  • 告别游戏中断:如何用XB1ControllerBatteryIndicator彻底解决Xbox手柄电量焦虑
  • 防城港梅雨季来临,房屋漏水抓紧修!2026最新房屋漏水维修公司TOP5调研盘点!卫生间免砸砖防水、楼顶外墙、阳光房+地下室渗漏解决方案解析 - 防水百科
  • 别再只调sklearn的SVC了!手把手教你用Python从零实现SVM分类器(附鸢尾花数据集实战)
  • LongLLMLingua2:GPT-4级压缩速度提升6倍
  • 终极指南:5步轻松配置BetterJoy让Switch手柄在PC上完美运行 [特殊字符]
  • 如何设计高效的AI Agent提示工程
  • sql1(DDL+DML)
  • Flowable监听器分配部门经理:手把手教你集成公司组织架构,实现真正动态审批流
  • 钦州梅雨季来临,房屋漏水抓紧修!2026最新房屋漏水维修公司TOP5调研盘点!卫生间免砸砖防水、楼顶外墙、阳光房+地下室渗漏解决方案解析 - 防水百科
  • 番茄小说下载器:一图看懂三大核心能力与零门槛使用指南
  • 如何5分钟内将位图转换为无限放大的矢量图:vectorizer深度解析
  • 5种方式让Gcovr成为你的C/C++代码覆盖率分析神器
  • JMeter-Rabbit-AMQP插件:消息队列性能测试的完整指南
  • 简道云进销存方案深度解读:零代码如何覆盖订单-仓库全链路?
  • Burp Suite渗透工作流设计:30款插件的阶段化实战应用
  • 图像矢量化完整指南:3分钟将普通图片升级为无限放大矢量图
  • 淘宝任务自动化:如何用智能脚本每天节省25分钟
  • 如何快速掌握猫抓浏览器扩展:网页媒体资源嗅探与下载的完整指南
  • FIFA 23生涯模式修改器终极指南:免费开源工具打造梦幻球队
  • java基础-多线程(1)
  • 索尼相机隐藏功能完全解锁:PMCA-RE逆向工程工具终极指南
  • Yalmip调试秘籍:用好verbose、debug和warning,快速定位模型报错与性能瓶颈
  • 什么是AI_Agent_Harness?从概念到实战全面解