TIL: 用 parallel 加速 rsync 迁移海量小文件

💡 原文中文,约1400字,阅读约需4分钟。
📝

内容提要

使用GNU parallel加速rsync迁移大量小文件,通过并行处理顶层子目录,减少文件系统元数据操作时间,提高磁盘利用率。注意调整并行进程数以避免机械硬盘过载,迁移后可用rsync校验差异。

🎯

关键要点

  • 使用GNU parallel加速rsync迁移大量小文件,核心思路是将源目录的顶层子目录分配给多个rsync进程并行处理。

  • rsync在处理小文件时,主要时间花费在文件系统的元数据操作上,通过并行化可以减少等待时间,提高磁盘利用率。

  • 注意调整并行进程数,建议从4开始,根据磁盘利用率动态调整,机械硬盘承受的并发量较低。

  • 如果文件没有子目录,可以按文件名分片进行迁移,确保并行处理的有效性。

  • 迁移完成后,使用rsync的dry-run和checksum模式进行差异校验,效率高于sha256sum。

延伸问答

如何使用GNU parallel加速rsync迁移小文件?

可以通过将源目录的顶层子目录分配给多个rsync进程并行处理来加速迁移。

rsync在处理小文件时的主要瓶颈是什么?

主要瓶颈在于文件系统的元数据操作,如stat、open、close,而不是数据传输本身。

在使用parallel时,如何选择并行进程数?

建议从4开始,根据磁盘利用率动态调整,避免机械硬盘过载。

如果源目录没有子目录,如何进行rsync迁移?

可以按文件名分片进行迁移,确保并行处理的有效性。

迁移完成后如何校验文件差异?

可以使用rsync的dry-run和checksum模式进行差异校验,效率高于sha256sum。

使用GNU parallel加速rsync的优势是什么?

通过并行处理,可以减少文件系统元数据操作的等待时间,提高磁盘利用率。

➡️

继续阅读