未来数据库硬件-网络篇

本文在绿泡泡"狗哥琐话"首发于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协议到网卡里)的方案。的确有点像,但是它还能涉及到一些存储、安全、虚拟化的能力,而且这玩意儿会是一个标准的硬件,很多硬件大厂都在推进这个事儿,未来成为数据中心事实标准也就是花时间的事儿。

相关推荐
骑士雄师1 天前
使用 IntelliJ IDEA 结合 DBeaver 连接 MySQL 数据库并实现数据增删查改的详细步骤:
数据库·mysql·intellij-idea
呼哧呼哧.1 天前
Spring的核心思想与注解
数据库·sql·spring
迎風吹頭髮1 天前
Linux内核架构浅谈49-Linux per-CPU页面缓存:热页与冷页的管理与调度优化
linux·缓存·架构
21号 11 天前
9.Redis 集群(重在理解)
数据库·redis·算法
爬山算法1 天前
Redis(73)如何处理Redis分布式锁的死锁问题?
数据库·redis·分布式
嘗_1 天前
sql特训
数据库·sql
云创智城-yuncitys1 天前
SpringCloud 架构在智慧交通路侧停车系统中的实践:从技术落地到城市级服务升级
spring·spring cloud·架构·智慧城市·停车系统·充电系统源码
2202_755744301 天前
外贸独立站SEO技术架构深度优化指南
架构·cdn分布式架构
TG_yunshuguoji1 天前
阿里云云代理商:阿里云CDN刷新机制是什么?
服务器·阿里云·云计算
wan5555cn1 天前
周末之美:慢下来,拥抱生活的温柔
数据库