服务器传输大量小文件
fpsync -n 16 -f 5000 -v -o "-avz -P" /disk/NFSshare/datasets/Deepfake/ jh@10.170.170.1:/disk/NFSshare/datasets/Deepfake/fpsync 是 fpart 工具包中的一个 Shell 脚本封装工具。它的核心逻辑是:先用 fpart 快速扫描目录并切分任务,再启动多个 rsync 进程并行传输。
针对你的“海量小文件”场景,以下是 fpsync 最核心、最常用的参数详解,以及针对你数据集的推荐配置。
1. 核心常用参数(必记
2. 调优参数(针对海量小文件)
fpsync 默认会根据文件数量或大小来把任务切分成块(Partition)。
3. 高级参数(特殊场景)
4. 实战案例:针对你的数据集
假设你的场景如下:
源目录:
/disk/NFSshare/datasets/Deepfake/目标:
jh@10.170.170.1:/disk/NFSshare/datasets/Deepfake/特点:大量小文件。
推荐命令组合
Bash
fpsync -n 16 -f 5000 -v -o "-avz -P" /disk/NFSshare/datasets/Deepfake/ jh@10.170.170.1:/disk/NFSshare/datasets/Deepfake/
参数拆解分析:
-n 16: 开启 16 个并发进程(假设你的服务器性能不错,T640 通常核心数较多)。-f 5000: 每个 rsync 进程处理 5000 个文件。这是一个平衡点,避免 rsync 进程只有几秒的寿命,也避免单个进程跑太久。-v: 输出详细信息,让你知道它在干活。-o "-avz -P":-a: 归档模式(保留权限、时间等)。-v: rsync 内部详细输出。-z: 压缩传输(如果你是千兆内网,CPU 吃紧的话可以去掉-z以降低 CPU 负载;如果是万兆内网,建议去掉-z直接跑)。-P: 显示进度。
5. 一个常见的坑:路径末尾的斜杠
fpsync 本质是调用 rsync,所以rsync 的斜杠规则依然适用。
如果你的目标目录
Deepfake已经存在,并且你想把源目录里的内容同步进去:源路径末尾加上斜杠
/。或者目标路径写到父目录。
最稳妥的写法(源和目标保持一致):
Bash
# 源目录带斜杠,目标目录也带斜杠,明确表示“目录对目录”的内容同步
fpsync -n 8 -o "-av" /src/dir/ user@host:/dst/dir/
总结
对于你的任务,只需要记住这三个黄金参数:
-n(并发数) +-f(分片大小) +-o(rsync参数)
先用小目录试跑一下,确认路径没问题,然后火力全开。