SMC-R透明加速TCP技术,在Redis场景下的应用实践

本文在浪潮信息云峦服务器操作系统KeyarchOS环境下,使用SMC-R透明加速TCP技术在Redis场景下进行了应用验证。

一. 背景

当前 Linux 网络协议栈是在性能(吞吐、CPU 使用率)、时延和通用性权衡下的实现。在真实场景中,常常需要高性能但是并不通用的用户态协议栈,亦或是通用、更高性能更低时延的方案,但是基于传统以太网卡的方案很难有大幅度的提升,更多是基于硬件的红利,例如 100G/400G 网络。

在大规模数据中心内部,如何为跨服务器之间的数据传输,提供高性能、低延迟的通信,从而加速数据中心内不同服务器之间的数据共享、数据备份、容灾等;在分布式存储系统中,如何为节点之间的数据传输,提供高带宽、低延迟的存储访问,加速数据的读写操作,提高存储系统的性能等;这些都成为新型网络协议栈的应用场景。

二. 简介

共享内存通信(Shared Memory Communication,SMC)是一种兼容 socket 层,利用共享内存操作实现高性能通信的内核网络协议栈。当共享内存通信基于远程内存直接访问(Remote Direct Memory Access,RDMA)技术实现时,称为 SMC over RDMA(SMC-R)。

SMC-R 兼容 socket 接口的特点使得 TCP 应用程序无需任何改造即可运行在 SMC协议栈上,底层使用的RDMA网络使SMC拥有相较于TCP更好的网络性能。SMC协议栈通过 TCP 连接自主发现对侧SMC能力,协商成功后使用SMC协议栈承载应用数据流量,协商失败则安全回退至TCP/IP协议栈,保证数据正常传输。

三. 协议透明替换

使用 SMC-R 协议有两种方法。

其一,是在应用程序中显式创建 AF_SMC 族的 socket;

其二,是利用 LD_PRELOAD 或 ULP + eBPF 的方式透明的将应用程序中的 AF_INET 族 socket 替换为 AF_SMC 族socket。我们默认使用 SMC-R 通信的节点已经加载了SMC 内核模块,并通过这种方法将应用程序运行在 SMC-R 协议上。

对于第二种方法:

使用 LD_PRELOAD 实现协议栈透明替换,在运行TCP应用程序时预加载一个动态库,在动态库中实现自定义 socket() 函数,将 TCP应用程序创建的 AF_INET 类型 socket 转换为 AF_SMC 类型的 socket,再调用标准 socket 创建流程,从而将 TCP 应用流量引入 SMC-R 协议栈。开源用户态工具集smc-tools中的 smc_run 指令即实现上述功能。

四. SMC-R在高性能数据查询和处理中的应用

SMC-R 作为一套与 TCP/IP 协议平行、向上兼容 socket 接口、底层使用 RDMA 完成共享内存通信的内核协议栈,其设计意图是为 TCP 应用提供透明的 RDMA 服务,同时保留了 TCP/IP 生态系统中的关键功能。基于此,本文针对redis数据库应用场景,在无需对redis进行任何改造的情况下,测试使用SMC-R前后吞吐性能对比,结果如下:

测试结果:redis-banchmarh测试中,SET方法在使用TCP协议下,无论线程数或数据包大小场景下均比较稳定,在使用SMC协议下,提升幅度较大,达到40%以上,在线程数8、数据包大小64情况下提升60%。GET方法测试结果与SET方法相近,性能提升趋势也基本一致。

五. 总结

基于SMC-R的高性能、透明替换等优势,适用于网络通信占比高的场景,在Redis等高性能数据查询与处理的场景,SMC-R为应用提供无侵入式透明替换TCP协议栈的能力,无需应用二次开发和适配,即可为应用提升QPS(Queries Per Second),在Redis应用场景下(64字节、8线程)可提升至60%。

相关推荐
皮皮学姐分享-ppx6 小时前
政府绿色采购数据库(2015-2024.3)
大数据·网络·数据库·人工智能·制造
W_chuanqi7 小时前
联想M7615DNA网络打印方法
网络·联想·打印机网络连接
HavenlonLabs10 小时前
硬件 + SaaS 产品的工程化路径:从系统架构、PCB 设计到工程样机
网络·安全·架构·系统架构·安全架构
yychen_java14 小时前
当算法成为武器:AI泛滥时代的多维危机透视与治理路径
网络·人工智能·ai
漫途科技14 小时前
精准盯防危房隐患,智守人居安全|MTB46-4-2A 4G数据采集终端专项应用方案
网络·安全
Misnearch15 小时前
抓包Packet Capture
网络·抓包
zhangfeng113315 小时前
ps aux讲解,结合国家超算中心 hpc apptainer
linux·服务器·网络
代码中介商16 小时前
TLS握手全解析:从1.2到1.3的加密演进
网络·网络协议·http
xlq2232216 小时前
66.ip
网络·网络协议·tcp/ip
tudoSearcher16 小时前
手机、平板、电脑同时控制Claude Code / Codex ?:Paseo实战指南
网络·开源·开源软件·个人开发·ai编程