首页/数据/备份与容灾速查/gzip 与 pigz 并行压缩

gzip 与 pigz 并行压缩

gzip 是通用压缩工具;pigz 使用多线程并行压缩 gzip 格式,在多核机器上可缩短打包时间,输出仍与 gzip 兼容。

备份与容灾速查数据更新于 2026-10-13

gzip 与 pigz 是什么

gzip 是最通用的压缩工具,单线程实现、兼容性最好;pigz 是它的多线程实现,能并行使用多核缩短压缩时间,输出仍是标准 gzip 流,任何支持 gunzip 的环境都能解开。备份窗口紧张且机器核数充足时,pigz 往往是压缩环节性价比最高的一步优化。

基本信息

格式gzip 流,扩展名 .gz
pigz 参数-p 线程数、-k 保留源文件、-9 压缩级别
兼容性pigz 输出可被 gunzip 与 zcat 直接读取
默认行为gzip 压缩后删除源文件,需保留时加 -k

常用操作

常用操作
gzip -9 backup.tar            # 单线程压缩,生成 backup.tar.gz
pigz -9 -p 8 -k backup.tar    # 8 线程并行压缩并保留源文件
zcat backup.tar.gz | tar -tf -   # 不解压直接查看 tar 内容
gzip -t backup.tar.gz         # 只校验完整性不落盘

gzip 与 pigz 对比

维度gzippigz
线程单线程多线程,-p 指定数量
速度受单核限制多核机器上明显更快
压缩率同级别基本一致略低,因分块并行
依赖系统基本自带需要额外安装

使用要点

  • 压缩级别与耗时不呈线性:从 6 提到 9 往往收益很小但耗时明显增加
  • 多核机器上用 pigz 能把压缩从串行瓶颈变成并行,备份窗口随之缩短
  • 与 tar 组合时优先用管道,避免先生成未压缩大文件再压缩占用双份空间
  • 对已压缩数据再次压缩收益很小,图片、视频与其他归档不必重复处理
  • 长期归档要确认目标环境有对应解压工具,格式越通用越安全
压缩级别越高越耗 CPU;备份窗口紧张时用较低级别换取吞吐通常更划算,压缩比差几个百分点远不如按时完成重要。
gzip 默认删除源文件:在归档流程中误用会把未压缩的原始文件一并删掉,脚本里应显式写出 -k 或先复制再压缩。

压缩策略选择

  • 数据可再生成(缓存、日志轮转产物)时,优先用低级别换取更短窗口
  • 数据需要长期保存且访问稀少时,可用高级别缩小长期存储占用
  • 压缩与备份同时进行还要留出磁盘写带宽,避免压缩后写盘成为新瓶颈
  • 同机既有业务又有备份任务时,限制并行度比提高压缩级别更重要

易错点

  • gzip 默认删除源文件:需要保留时加 -k
  • 对已压缩数据(图片、视频、其他归档)再压缩收益很小,白白消耗 CPU
  • 压缩产物损坏通常整包不可用,校验和要在压缩之后重新生成
  • 在内存紧张的机器上用高并行度压缩,反而因换页拖慢整体吞吐

数据来源与参考

  • man 1 gzip
  • pigz 官方手册(并行 gzip 实现)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌