fpsync -n 16 -f 5000 -v -o "-avz -P" /disk/NFSshare/datasets/Deepfake/ jh@10.170.170.1:/disk/NFSshare/datasets/Deepfake/

fpsyncfpart 工具包中的一个 Shell 脚本封装工具。它的核心逻辑是:先用 fpart 快速扫描目录并切分任务,再启动多个 rsync 进程并行传输

针对你的“海量小文件”场景,以下是 fpsync 最核心、最常用的参数详解,以及针对你数据集的推荐配置。

1. 核心常用参数(必记

参数

含义

解释与建议

-n <jobs>

并发数

最重要参数。指定同时启动多少个 rsync 进程。

建议设置为 CPU 核心数核心数 * 2

例如:-n 8 表示同时跑 8 个 rsync。

-o "<options>"

Rsync 选项

透传参数。你想给底层 rsync 传什么参数写在这里。


一定要用引号括起来。


例如:-o "-avzP"-o "-avz --delete"

-v

详细模式

显示更多日志,方便看到当前进度和出错信息。建议加上。

-w <dir>

工作目录

指定存放临时任务列表文件的目录。


默认是 /tmp/fpsync/。如果你的 /tmp 空间很小,可以用这个参数改到大盘。

2. 调优参数(针对海量小文件)

fpsync 默认会根据文件数量或大小来把任务切分成块(Partition)。

参数

含义

解释与建议

-f <files>

文件数切分

每个同步任务包含多少个文件。


小文件场景核心优化点


默认值较低。对于百万级小文件,建议设为 2000~10000


设太小:rsync 进程启停太频繁,浪费资源。


设太大:并发效果不明显。

-s <size>

大小切分

每个同步任务包含多大的数据量(单位字节)。


例如 -s 1073741824 (1GB)。


一般和小文件参数 -f 二选一,混用时哪个先达到就触发切分。


3. 高级参数(特殊场景)

参数

含义

解释与建议

-S

Sudo 模式

如果是本地同步且需要 root 权限,可以加上 -S,它会用 sudo 启动 rsync。

-M

SSH Control

使用 SSH ControlMaster 复用连接。如果文件非常多,建立 SSH 连接很慢,这个参数可以复用连接,加速握手。

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/

参数拆解分析:

  1. -n 16: 开启 16 个并发进程(假设你的服务器性能不错,T640 通常核心数较多)。

  2. -f 5000: 每个 rsync 进程处理 5000 个文件。这是一个平衡点,避免 rsync 进程只有几秒的寿命,也避免单个进程跑太久。

  3. -v: 输出详细信息,让你知道它在干活。

  4. -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参数)

先用小目录试跑一下,确认路径没问题,然后火力全开。

文章作者: Hao.Jia
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hao.Jia's Blog
服务器 服务器维护
喜欢就支持一下吧