You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用zstd快速网络传输小文件?rsync对比tar提速效果如何?

用zstd实现大量小文件的SSH快速传输

大量小文件单独通过SSH传输会产生巨大的连接和元数据开销,打包+zstd压缩+SSH管道是最优方案,具体操作如下:

核心命令示例

# 本地打包→zstd压缩→SSH传输→远端解压(保留文件权限)
tar -cpf - /path/to/your/small/files | zstd -T0 --fast | ssh user@remote-host "zstd -d | tar -xpf - -C /path/to/remote/dir"

参数解释

  • tar -cpf -:-c创建打包文件,-p保留权限/元数据,-f -将打包内容输出到标准输出(而非本地文件)
  • zstd -T0 --fast:-T0自动使用所有CPU线程加速压缩,--fast启用快速压缩级别(平衡速度与压缩比,若追求更高压缩比可替换为-3到-19,但速度会下降)
  • 远端zstd -d | tar -xpf - -C:解压zstd数据流,再将tar包提取到指定目标目录

rsync vs tar:传输速度对比

两者的速度差异取决于场景:

1. 首次全量备份

tar+zstd的速度显著优于rsync

  • rsync需要逐个遍历本地和远端的文件列表,比对元数据(大小、修改时间),大量小文件会导致极高的比对开销
  • tar直接将所有文件打包成单一数据流,减少了SSH连接的反复建立和元数据传输开销,配合zstd的高速压缩,整体传输效率更高

2. 增量备份(仅同步变化文件)

rsync的优势明显

  • rsync仅传输本地与远端存在差异的文件(或文件的变化部分),无需重新打包所有文件
  • 如果要结合zstd提升rsync的压缩效率,可使用rsync 3.2.0+版本的--compress-choice=zstd参数:
    rsync -avz --compress-choice=zstd /path/to/small/files user@remote-host:/path/to/remote/dir
    

总结

  • 首次全量备份:优先选tar+zstd+SSH
  • 后续增量同步:优先选rsync(可选结合zstd压缩)

内容的提问来源于stack exchange,提问作者Bob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:45:28