pigz 并行压缩打包
示例命令:压缩速度提升
tar --use-compress-program="pigz -k -p32" -cvf DeepSeek-R1-BF16.tar.gz DeepSeek-R1-BF16
命令拆解:
tar
:负责将目录DeepSeek-R1-BF16
打包。--use-compress-program="pigz -k -p32"
:指定用pigz
代替默认的gzip
:-k
: 保留原始文件(压缩后不会删除输入文件,按需使用)。-p32
: 启用 32 个线程加速(根据 CPU 核心数调整,例如 8 核机器建议-p8
)。- 压缩等级默认为 6(速度与压缩率平衡)。
-cvf
:-c
创建归档,-v
显示过程,-f
指定输出文件名。
对比传统方法:快了多少?
- 传统单线程:
tar -czvf archive.tar.gz DIR
耗时:6分30秒(以10GB文件为例)。 - 多线程优化:
tar --use-compress-program="pigz -p32" -cvf archive.tar.gz DIR
耗时:约50秒(速度提升近 8 倍,实际效果取决于CPU性能)。
关键参数说明
-
启用多线程(必须):
使用-pN
指定线程数(N
建议为 CPU 核心数),例如:-p8
(8线程)-p$(nproc)
(自动获取全部逻辑核心,推荐!)。
-
是否需要保留原始文件:
-k
会保留输入文件(慎用:例如打包目录会生成临时tar
文件),如果不需要可去除。 -
兼容性提示:
某些旧版tar
可能不支持--use-compress-program
,可替换为等效的-I
参数:tar -I "pigz -p32" -cvf archive.tar.gz DIR
日常操作建议
-
压缩等级调整(可选):
pigz
默认压缩等级为6
(1最低速/低压缩率,9最高速/高压缩率)。如需极致速度:# 快速模式(低压缩率,时间减半) tar --use-compress-program="pigz --fast -p32" -cvf FAST.tar.gz DIR
-
解压命令:
tar --use-compress-program="pigz -p32" -xvf archive.tar.gz
总结
通过为 pigz
指定线程参数 -p
,并直接嵌入到 tar
命令中,可以简单粗暴地:
1️⃣ 榨干 CPU 性能,将压缩速度提升多倍;
2️⃣ 沿用熟悉的 tar
语法,无需学习新工具;
3️⃣ 保持 .tar.gz
的通用性,任何支持 gzip
的环境均可解压。
下次处理大文件时,不妨用 -pN
参数开启多线程压缩,告别漫长等待!
附:性能监控小贴士
运行命令前可打开终端监控工具(如 htop
),观察 CPU 使用率。若所有核心满载,说明 pigz
正在全力工作!