未来数据库硬件-网络篇

本文在绿泡泡"狗哥琐话"首发于2025.2.17 <-关注不走丢。

最近看到一篇不错的文章,叫做"Modern Hardware for Future Databases",里面从几个方向讲了下现在数据库的硬件发展趋势,今天先来说说网络篇。

内容中,一位大佬对(获过图灵奖的大佬)OLTP系统进行了一些基准测试,发现TCP-IP协议栈对于总体CPU使用率是占在47~68%。如果使用的网络带宽增加,这个开销还会提升。这种东西在业内也叫做datacenter tax,数据中心税。

大佬信息⬇️

那如何降低datacenter tax呢?

一种方案是将TCP换成在UDP上运行的协议,比如QUIC。然而并没有软用,因为QUIC就是将TCP封装并加密在UDP中,所以带来的开销是一样的。

还有一种做法就是把计算密集型,但是简单的部分交给硬件。比如payload的分段和校验,KTLS还允许把加密解密也放到网卡上。这些都是切实可行的的方案,但是比较依赖于社区的推进。比如更激进的TOE(TCP offload engine------卸载整个TCP协议到网卡里)就被内核开发者基于维护成本的原因否定了。

既然内核为TCP IP花了这么多计算资源,能不能绕开内核呢?有的,这就是Intel于2010年领导发起的 DPDK(Data Plane Development Kit)。

发起它主要是intel为了卖自家硬件,针对intel处理器和网卡开发的高性能网络驱动组件,后来DPDK开源以后,越来越多厂商加入进来,所以也算是变成了业界的事实标准了。

左边是传统的内核网络,而右边是DPDK。可以看到右边是直接绕开DPDK基础库的,在用户空间直接对数据包做收发、处理。

根据网上的实践反馈呢,用下来至少可以提供50%+的网络吞吐,缺点就是它需要独占一张网卡,并且它的开发并不简单,需要有经验的开发人员进行开发维护,这就是高性能的代价。

另一种思路则是基于DMA(Direct Memory Access,直接内存访问)的RDMA(Remote Direct Memory Access,远程直接内存访问)是一种允许主机之间直接访问彼此内存的技术。DMA 技术中,无需 CPU 参与,主机内部的设备(如硬盘或网卡)能够直接与内存交换数据,所以RDMA也不需要CPU参与的,就直接走网卡。

目前比较常见的实现方案是RoCE(RDMA over Converged Ethernet,融合以太网的远程直接内存访问)和Infiniband。

  • Infiniband,是一种专门为 RDMA 而生的技术,由 IBTA(InfiniBand Trade Association, InfiniBand 贸易协会)在 2000 年提出,因不错的性能在高性能计算领域中很受欢迎。 但构建 Infiniband 网络需要配置全套专用设备,如专用网卡、专用交换机和专用网线,限制了其普及性。其次,它的技术架构封闭,不兼容现有的以太网标准。所以通用数据中心很难搞这套。
  • 为了降低 RDMA 技术的使用成本,并使其应用于通用数据中心领域,2010 年,IBTA 发布了 RoCE(RDMA over Converged Ethernet,融合以太网的远程直接内存访问)技术,只需配备支持 RoCE 的专用网卡和标准以太网交换机,就可以赶上Infiniband速度了,相当于Wrapper了一层。

最后要注意的是:RDMA 网络对丢包极为敏感,任何数据包的丢失都可能导致大量重传,降低传输性能。所以对于整体的基础设施要求是比较高的,都会涉及到一些专用硬件。

最后一种解决方案,是个比较新的玩意儿。叫DPU(Data Processing Unit),或者叫做SmartNIC,它会将更多的CPU要做的事放到这里,聪明的你肯定想到了前面TOE(TCP offload engine------卸载整个TCP协议到网卡里)的方案。的确有点像,但是它还能涉及到一些存储、安全、虚拟化的能力,而且这玩意儿会是一个标准的硬件,很多硬件大厂都在推进这个事儿,未来成为数据中心事实标准也就是花时间的事儿。

相关推荐
霍格沃兹测试学院-小舟畅学10 分钟前
Cypress:架构原理与环境设置全解析
架构
William_cl23 分钟前
【CSDN 精品专栏】ASP.NET Razor 变量输出 @变量名:从入门到避坑,新手也能写对!
java·数据库·asp.net
困死了111127 分钟前
PostgreSQL笔记
数据库·笔记·postgresql
尤物程序猿42 分钟前
spring的监听器的几种使用方式
java·数据库·spring
老华带你飞43 分钟前
学生请假管理|基于springboot 学生请假管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端·spring
wanhengidc1 小时前
巨椰 云手机 云游戏稳定运行
运维·服务器·arm开发·游戏·云计算
Aaron15881 小时前
基于RFSOC+VU13P+GPU架构在雷达电子战的技术
人工智能·算法·fpga开发·架构·硬件工程·信号处理·基带工程
林义满1 小时前
大促零宕机背后的运维升级:长三角中小跨境电商的架构优化实践
大数据·运维·架构
前端不太难1 小时前
如何给 RN 项目设计「不会失控」的导航分层模型
前端·javascript·架构
一 乐1 小时前
校务管理|基于springboot + vueOA校务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring