#tar-archive #tar #archive #linux #cli

app fastar

HDDs上快速创建tar存档

6个版本

0.2.0 2021年12月18日
0.1.5 2021年3月18日
0.1.4 2017年7月1日
0.1.3 2017年6月20日
0.1.1 2017年5月26日

#1590 in 文件系统

每月 21 次下载

GPL-3.0 许可证

20KB
134

Version

fastar

tar -cT <(find . -type f) 更快的等效程序,优化了存储在HDD上的多个小文件的打包。

与GNU tar相比的优化

  • 基于物理磁盘布局的目录遍历。参见platter-walk crate
  • 一次性读取多个文件以提高驱动器的命令队列的填充。参见reapfrog crate
  • 文件读取后丢弃磁盘缓存以防止磁盘缓冲区冲突。

与GNU tar相比的局限性

  • 参数必须是目录
  • 只能存档常规文件,不能存档符号链接或空目录
  • 不包含xattrs
  • 稀疏文件被零填充

构建

  • 间接依赖:libz,liblzo头文件
  • cargo构建 --发布

基准测试

# ffcnt . -s
files: 6680901
bytes: 245271028476

# echo 3 > /proc/sys/vm/drop_caches ; tar -c . | pv -at > /dev/null
^C0:02:45 [ 2.4MiB/s]

# echo 3 > /proc/sys/vm/drop_caches ; tar -cT <(ffcnt --ls --type f --leaf-order content .) | pv -at > /dev/null
^C0:02:50 [4.11MiB/s]

# echo 3 > /proc/sys/vm/drop_caches ; fastar . | pv -at > /dev/null
^C0:02:51 [9.28MiB/s]

依赖

~7–15MB
~204K SLoC