支持零拷贝传输的 Linux 文件传输工具

支持零拷贝传输的 Linux 文件传输工具

是否有适用于 Linux 的小型简单文件传输工具,可以使用“零拷贝”方式将文件从 HDD(SSD)传输到 tcp 套接字,并返回?

我经常需要在两台 PC 之间通过 1 Gbit 或 10 Gbit 的以太网发送大量不可压缩的唯一数据(数十至数百 GB)。我不需要加密,也不需要压缩,不需要重复数据删除/增量传输,也不需要工具进行任何额外的校验和(因此,不需要scp也不需要默认设置rsync);只需要高带宽的线性磁盘读取和高网络利用率。

此外,我希望该工具不要进行大量内存复制,而是使用现代 Linux 内核的“零复制”基础结构:系统调用splice、、vmsplicesendfile。使用零复制工具可以跳过大多数数据复制过程,指示内核从 HDD/SSD/RAID 读取一些数据(DMA 读取到页面缓存),然后将其重新打包成数据包,并对网卡进行编程以直接从页面缓存执行 DMA。这种“零复制”方法将降低传输带来的系统负载,因为 CPU 不必将文件数据的每个字节都弄乱。传输的一方可能 CPU 速度较慢……

相关内容