使用所有核心解压 tar.xz 文件

使用所有核心解压 tar.xz 文件

tar我有 37 GiB 文件,由+创建xz。我有一台 6 核服务器,因此为了获得最大压缩速度,我想使用此命令使用我的所有 6 个核心

XZ_OPT='-T0 -9 –memory=75%' tar -cJf mydir.tar.xz mydir

而且速度非常快。我该怎么做才能使用所有核心进行解压缩?

tar -xvf mydir.tar.xz 

仅使用 1 个核心进行减压

答案1

通常,压缩是瓶颈,因此大多数压缩库都不支持线程解压缩。引用 xz 手册页:

线程解压尚未实现。它只适用于包含多个块的文件,且块头中包含大小信息。所有以多线程模式压缩的文件都符合此条件,但以单线程模式压缩的文件即使使用 --block-size=size 也不行。

答案2

从 xz 5.4.1(2022 年 12 月)开始,支持使用 进行并行解压缩-T0。但是,tar 文件格式需要顺序读取,因此需要一些最多为 thread_count * block_size 的缓冲。我不确定 xz 是否有这种缓冲来支持管道。

相关内容