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 正在全力工作!
浙公网安备 33010602011771号