核心优势
SMC-R的优势主要体现在以下几点:
高性能
得益于RDMA技术将网络协议栈从内核卸载至硬件网卡,SMC-R相较于TCP协议栈在合适的场景下可获得更低的时延、更高的吞吐量,以及更小的CPU负载。具体表现在:
基于RDMA的硬件卸载。
高效可靠的远程内存直接访问设计。
透明替换
得益于SMC-R对POSIX socket接口的兼容以及协议栈透明替换能力,socket应用程序可以在无修改的情况下完成TCP协议栈到SMC-R协议栈的切换,无需额外的应用改造和开发成本。具体表现在:
兼容socket接口的共享内存通信。
进程或net namespace维度的透明协议替换。
自动协议协商和安全回退机制。
技术架构
SMC-R技术架构说明如下:
协议层次与透明替换
SMC-R工作于内核空间,向上支持用户态程序通过socket接口描述的网络行为,向下使用IB verbs接口实现RDMA网络传输。RDMA资源的使用、管理与维护均由SMC-R协议栈完成,应用程序不会感知到内核中的RDMA实体。技术架构如下图所示:
Alibaba Cloud Linux 3提供了进程或net namespace维度的TCP至SMC-R协议栈透明替换机制。通过LD_PRELOAD或sysctl net.smc.tcp2smc等方式让网络传输运行于SMC-R协议栈,使应用程序无需修改即可享受RDMA带来的网络性能提升。
自动协商和安全回退
SMC-R具备自动协商、动态回退TCP的能力。建立SMC-R通信前,协议栈首先在内核中与通信对端建立TCP连接,在握手过程中使用特殊的TCP选项表明自身支持SMC-R,并确认对端同样支持SMC-R。
如果协商成功,通信两侧SMC-R协议栈将创建新的或者复用已有的RDMA资源,建立可用的RDMA RC链路。从此网络传输将基于RDMA网络完成。
如果协商失败,例如一侧不具备RDMA设备,SMC-R协议栈将自动回退到TCP协议栈,使用协商时建立的TCP连接完成数据传输。
说明
SMC-R仅支持连接协商期间回退至TCP,但不支持数据传输过程中的回退。
协商和数据传输流如下图所示:
基于RDMA的共享内存通信
完成协议协商并建立连接后,协议栈为SMC-R socket分配一块用于缓存待发送数据的环形缓冲区sndbuf和一块用于缓存待接收数据的环形缓冲区RMB(Remote Memory Buffer)。
发送端应用程序通过socket接口将待发送数据拷贝到本侧sndbuf中,由SMC-R协议栈通过RDMA WRITE操作直接高效地写入对侧节点的RMB中。同时伴随着使用RDMA SEND/RECV操作交互连接数据管理消息,用于更新、同步环形缓冲区中的数据游标。
接收端SMC-R协议栈感知到RMB中填入新数据后,通过epoll等方式告知接收端应用程序将RMB中的数据拷贝到用户态,完成数据传输。所以在SMC-R中,RMB充当传输过程中的共享内存。
数据传输过程如下图所示:
应用场景
基于SMC-R的高性能、透明替换等优势,适用于网络通信占比高的场景,该技术的典型应用场景示例如下:
时延敏感的数据查询和处理
Redis、Memcached、PostgreSQL等高性能数据查询与处理的场景,对网络性能有极高的要求。SMC-R为应用提供无侵入式透明替换TCP协议栈的能力,无需应用二次开发和适配,即可为应用提供更高50%的QPS(Queries Per Second)提升。
高吞吐的数据传输
集群内的大规模数据交互与传输,往往需要占用大量的带宽和CPU资源。得益于RDMA技术带来的远程内存直接访问,SMC-R在相同的吞吐性能下,CPU资源使用显著低于TCP协议栈,为应用节省更多的计算资源。
说明
SMC-R握手涉及到RDMA资源创建和申请,所以对于频繁建立、销毁连接(短链接)场景没有收益。
SMC-R支持的连接规模受限于如下资源:
实例可用的物理内存大小。每个SMC-R socket所用的收发缓冲区sndbuf和RMB默认使用物理连续内存,在SMC-R连接建立时分配,大小默认为当前net.smc.wmem和net.smc.rmem值。查看方式:
sysctl net.smc.wmem # 每个SMC-R socket sndbuf默认大小,单位:字节
sysctl net.smc.rmem # 每个SMC-R socket RMB默认大小,单位:字节
ERI eRDMA规格。SMC-R为连接创建的RDMA资源(例如QP、MR、CQ、PD等)上限由实例ERI eRDMA规格决定。更多信息,请参见在企业级实例上配置eRDMA。
当SMC-R无法获取到所需资源时将会安全回退到TCP协议,确保数据传输稳定可靠。
阿里云数据解决方案[39] 阿里云是什么[38] 阿里云产品报价[36] 阿里云产品介绍[35] 阿里云解决方案[35] 阿里公有云介绍[35] 云规划设计与实施服务[34] 阿里公有云产品[34] 云与计算培训服务[30] 阿里云优势[30] 阿里云官网登陆[30] 阿里云服务器配置[30] 阿里私有云搭建方案[30] 云与计算咨询服务[28] 阿里云服务器[28] 阿里云服务器成功案例[28] 公有云私有云混合云[27] 阿里云官网[27] 阿里公有云提供哪些计算服务[27] 阿里弹性云服务器[27] 阿里云智慧教育解决方案[26] 阿里公有云官网[26] 阿里公有云服务[26] 阿里私有云方案[26] 大数据使能服务[25] 阿里云园区解决方案[25] 阿里私有云平台[25] 阿里云服务器试用[24] 云迁移与运营支撑服务[21] 阿里私有云架构[20] 阿里私有云解决方案[20] 阿里云提供的服务[18] 阿里云智慧制造解决方案[18] 阿里云服务总代理[18] 阿里云云主机[17] 阿里云安全[17] 阿里私有云[17] 阿里云服务服务中心[16] 阿里云服务核心分销商[16] 阿里公有云架构解决方案[16] 阿里私有云搭建[16] 阿里云备份[15] 阿里云服务器ECS[15] 阿里云软件开发服务[15] 阿里公有云行业解决方案[15] 阿里私有云服务[15] 阿里私有云的搭建方案[15] 阿里私有云网格结构[15] 阿里私有云部署架构[15] 阿里云智慧校园解决方案[14] 阿里云漏洞扫描[14] 阿里云网站建设服务器[14] 阿里云邮箱[14] 阿里云块存储[13] 阿里云弹性云服务器应用[13] 阿里云数据库[13] 阿里云服务器应用[13] 阿里云桌面系统集成商[13] 阿里云迁移解决方案[13] 云与计算客户支持与运维使能服务[12] 阿里云桌面总代理商[12] 阿里云速建站[12] 阿里云产品服务[11] 智慧教育云平台解决方案[10] 阿里云场景化解决方案[10] 阿里云域名注册[10] 阿里云速智能客服[10] 阿里公有云架构[10] 阿里智慧云课堂解决方案[10] 阿里公有云视讯解决方案[9] 阿里私有云产品有哪些[9] 智慧教育云计算解决方案[8] 阿里公有云平台[8] 阿里公有云解决方案[8] 阿里公有云通用解决方案[8] 阿里私有云服务器[8] 阿里云智慧***解决方案[6] 阿里公有云和私有云区别[6] [5] 云与计算客户支持服务[5] 云盘基础操作[5] 阿里公有云是什么[5] 阿里公有云解决方案服务定制领导者[5] 阿里私有云解决方案服务定制领导者[5] 阿里虚拟私有云vpc[5] 扩容云盘[4] 阿里云HTTPS加密访问[4] 阿里云共建智能世界云底座[4] 阿里云域名解析[4] 阿里云应用镜像(13款)[4] 阿里公有云[4] 大数据使能服务[3] 阿里云园区解决方案[3] 阿里公有云产品[3] 加密云盘[3] 阿里云代理公司有哪些[3] 阿里云官网网站[3] 阿里云手机代理加盟[3] 阿里云经销商[3] 阿里公有云专属云主机DeH服务[3] 阿里云官网[2] 阿里云解决方案[2] 阿里公有云架构[2] 阿里私有云搭建[2] 云规划设计与实施服[2] 阿里云企业邮箱服务[2] 阿里云企业邮箱服务 (SAAS,云邮箱)[2] 阿里云数据解决方案 [2] 智慧教育云计算解决方案[1] 阿里云产品服务[1] 阿里云域名注册[1] 云与计算咨询服务[1] 阿里云云主机[1] 阿里云产品报价[1] 阿里云产品服务[1] 阿里云优势[1] 阿里云智慧制造解决方案[1] 阿里云智慧校园解决方案[1] 阿里云服务器ECS[1] 阿里云服务器应用[1] 阿里云服务器成功案例[1] 阿里云服务器试用[1] 阿里云服务器配置[1] 阿里云服务核心分销商 [1] 阿里云速智能客服[1] 阿里公有云平台[1] 阿里私有云搭建方案[1] HTTPS加密访问(CA证书)[1] 专属块存储集群[1] 专属块存储集群概述[1] 主机新用户使用指南[1] 云盘加密概述[1] 云盘扩容指引[1] 修改云盘标签[1] 加密数据盘[1] 加密系统盘[1] 单实例[1] 卸载或挂载系统盘[1] 卸载数据盘[1] 基础环境配置[1] 如何选购云虚拟主机[1] 快照灵活易用[1] 扩容云盘容量[1] 扩容分区和文件系统(Windows)[1] 提供DDoS防护[1] 撒[1] 最新一代CIPU网络[1] 查看磁盘序列号[1] 网站开通要素[1] 腾讯云园区解决方案[1] 腾讯云数据解决方案[1] 腾讯云解决方案[1] 转换MBR分区为GPT分区[1] 释放云盘[1] 镜像跨地域无缝迁移[1] 阿里云[1] 阿里云主备架构[1] 阿里云产品报价 云规划设计与实施服务[1] 阿里云企业级能力[1] 阿里云原生MySQL生态[1] 阿里云原生数据库 PolarDB[1] 阿里云备份恢复[1] 阿里云官方网站,网络安全隔离[1] 阿里云客户端[1] 阿里云故障切换[1] 阿里云数据传输服务 DTS[1] 阿里云数据库 MongoDB 版[1] 阿里云数据库 RDS MySQL 版[1] 阿里云数据库自治服务 DAS[1] 阿里云数据管理 DMS[1] 阿里云智慧解决方案[1] 阿里云智慧***解决方案[1] 阿里云服务器ECS[1] 阿里云自动分区[1] 阿里云解决方案 [1] 阿里云速智能客服 阿里私有云 阿里私有云解决方案[1] 阿里公有云架[1] 阿里私有云产品有什么[1] 阿里私有云搭建 [1] 高级环境配置(Linux操作系统)[1] 高级环境配置(Windows操作系统)[1]