【问题标题】:Specify number of cores used in tar with lbzip2使用 lbzip2 指定 tar 中使用的核心数
【发布时间】:2019-09-13 15:49:22
【问题描述】:

通常我使用 tar 和 bzip2 的组合来存储目录。但是,有些非常大,所以我测试了一些允许并行处理的压缩算法。以下是我迄今为止尝试过的两个选项:

tar cf dst.tar.bz2 src --use-compress-program=lbzip2

tar c src | pigz > dst.tar.gz

lbzip2 算法速度更快,压缩率更高。但是,pigz 允许我指定它使用的处理器数量。我可以指定 lbzip2 示例中使用的处理器数量吗?

【问题讨论】:

  • 你可以看看这里并考虑做类似的事情stackoverflow.com/a/34166037/2836621
  • 基于 tar 文档(this page 的底部,您可以使用脚本作为压缩程序。然后脚本可以使用您想要的任何附加参数调用 lbzip2。
  • @MarkSetchell 现在这是一个有趣的选项。我浏览了文档,看起来并行是一个非常强大的工具,所以在实现它之前我需要更好地理解它。感谢您提请我注意。
  • @DanMašek 你为我指明了正确的方向!在重新阅读 lbzip2 文档后,我看到了 -n 选项(列出的第一个选项......但我之前看过它)。 tar cf CL51.tar.bz2 CL51 --use-compress-program=lbzip2 -n 4 用于将处理器数量设置为 4。感谢您的指点。
  • 您可以将您的解决方案添加为答案并接受它并获得积分。

标签: parallel-processing compression


【解决方案1】:
tar cf file.tar.bz2 src --use-compress-program='lbzip2 -n8'

为我工作。

【讨论】:

  • 嗯,这仍然无法在我的机器上运行。我收到以下错误:tar (child): lbzip2 -n8: Cannot exec: No such file or directory
【解决方案2】:

阅读 tar 和 lbzip2 文档后,我认为以下行应该可以工作(它没有):

tar cf dst.tar.bz2 src --use-compress-program=lbzip2 -v -n 4

您可以在 lbzip2 调用之后列出选项/标志(即 -v 成功将输出设置为详细),但由于某种原因 -n 标志在此处不起作用。如果有人能指出问题/解决方案,我将不胜感激。

但是,lbzip2 可以通过以下方式与 tar 一起使用:

tar c src | lbzip2 -n 4 > dst.tar.bz2

这与最初的 gzip 调用类似,但(从我目前的测试来看)仍然比 gzip 运行得更快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多