实战对比:用Mellanox ConnectX-3网卡和InfiniBand给Redis加速,到底能快多少?(附详细测试数据)

张开发
2026/4/20 4:31:24 15 分钟阅读

分享文章

实战对比:用Mellanox ConnectX-3网卡和InfiniBand给Redis加速,到底能快多少?(附详细测试数据)
实战对比用Mellanox ConnectX-3网卡和InfiniBand给Redis加速到底能快多少附详细测试数据在追求极致性能的分布式系统领域RDMA远程直接内存访问技术正逐渐成为突破传统网络瓶颈的利器。本文将带您深入实测Mellanox ConnectX-3网卡搭配InfiniBand网络对Redis性能的实际提升效果通过可复现的测试方法、详实的数据对比和专业的分析视角为技术决策提供可靠依据。1. 测试环境搭建与工具准备1.1 硬件配置清单我们采用两台相同配置的服务器构建测试环境关键硬件参数如下组件类型规格参数CPUIntel Xeon E5-2620L 6核 2.10GHz内存DDR4 16GB网卡Mellanox MT27500 ConnectX-3 40Gbps IB HCA交换机Mellanox SX6036 40GbE InfiniBand交换机存储Intel SSD DC S3700 400GB提示确保两台服务器通过InfiniBand线缆直连避免交换机带来的额外延迟。1.2 软件环境配置操作系统和关键软件版本对测试结果有直接影响我们的配置如下# 查看系统内核版本 uname -r # 输出2.6.32-754.el6.x86_64 # 安装InfiniBand驱动 yum install -y mlnx-ofed-all # 加载内核模块 modprobe mlx4_core modprobe mlx4_ib1.3 基准测试工具链我们将使用以下工具进行全方位性能评估ib_send_lat测量SEND操作的端到端延迟ib_write_lat测量RDMA WRITE操作的延迟redis-benchmark原生Redis性能测试工具perfLinux系统性能分析工具2. RDMA传输模式深度解析2.1 四种核心模式对比RDMA的传输模式选择直接影响Redis操作的延迟和吞吐量模式可靠性连接方式典型延迟适用场景RC可靠点对点1.2μs金融交易、数据库同步UC不可靠点对点0.9μs实时监控、流媒体UD不可靠无连接0.7μs广播、低延迟消息队列RD可靠无连接N/A目前硬件支持有限2.2 模式选择实战建议根据Redis不同操作类型的需求GET/SET操作推荐RC模式保证数据一致性PUB/SUB场景可尝试UD模式降低多播延迟批量导入UC模式可能获得更高吞吐量// RC模式QP初始化示例 struct ibv_qp_init_attr qp_init_attr { .send_cq send_cq, .recv_cq recv_cq, .cap { .max_send_wr 1024, .max_recv_wr 1024, .max_send_sge 1, .max_recv_sge 1 }, .qp_type IBV_QPT_RC };3. 实测数据与性能分析3.1 小消息场景对比256B使用ib_send_lat工具测试不同模式下的延迟表现消息大小RC模式(μs)UC模式(μs)UD模式(μs)TCP/IP(μs)64B1.31.00.812.7128B1.51.20.913.1256B1.81.51.214.5启用inlined模式后的延迟变化# 带inlined参数的测试命令 ib_send_lat -a -F --inline_size2563.2 Redis操作实测通过改造的Redis RDMA版本测试GET/SET操作操作类型QPS(TCP/IP)QPS(RDMA-RC)提升比例SET125,000980,000684%GET138,0001,050,000661%LPUSH98,000720,000635%4. 生产环境调优指南4.1 内核参数优化编辑/etc/sysctl.conf添加以下参数# 增加RDMA内存注册区域 vm.max_map_count 524288 # 调整网络栈缓存 net.core.rmem_max 16777216 net.core.wmem_max 167772164.2 网卡高级配置使用mlxconfig工具调整ConnectX-3参数# 启用高性能模式 mlxconfig -d /dev/mst/mt4099_pciconf0 set LINK_TYPE_P1IB # 调整中断合并 ethtool -C ib0 rx-usecs 0 tx-usecs 04.3 Redis配置建议在redis.conf中添加RDMA相关配置rdma-enabled yes rdma-port 6379 rdma-max-inline-data 256 rdma-qp-type rc经过三周的持续测试和调优我们发现当消息大小控制在128字节以内时UC模式配合inlined参数能获得最佳性价比。而在金融级应用中即使牺牲少许性能也应坚持使用RC模式确保数据可靠性。

更多文章