在某种程度上减少甚至完全避免不必要 CPU 数据拷贝操作,是一种 I/O 操作优化技术

铺垫些基础知识

IO 执行流程对比

以一个场景为例:后端接收一个请求,将本地存储的一个文件返回给前端。

Linux之后升级了sendfile,引入 SG-DMA 技术,其实就是对 DMA 拷贝加入了scatter/gather,可以直接从内核空间缓冲区中将数据读取到网卡。

20220412-4

如图所示,过程包括 2 次拷贝2 次上下文切换,而且真正做到了无 CPU 拷贝