在Linux系统中,使用tar -zcvf打包并压缩文件是日常操作,但当文件数量庞大或单个文件很大时,单线程的gzip压缩往往成为瓶颈,导致压缩速度缓慢,严重影响效率。本文将介绍如何通过多线程压缩工具pigz与tar结合,大幅提升压缩速度,实现速度翻倍的效果。
传统的tar -zcvf archive.tar.gz /path/to/dir命令使用gzip算法进行压缩,而gzip默认是单线程工作的。即使你的CPU有多个核心,gzip也只能利用一个核心,导致CPU资源浪费,压缩时间随数据量线性增长。对于几十GB甚至TB级别的数据,单线程压缩可能需要数小时。
pigz(Parallel Implementation of GZip)是gzip的多线程实现,它能够利用多个CPU核心并行压缩数据,从而显著提升压缩速度。pigz完全兼容gzip格式,因此生成的压缩文件可以用标准gzip解压,无需额外工具。
大多数Linux发行版都提供了pigz软件包,安装非常简单:
# Debian/Ubuntusudo apt install pigz# RHEL/CentOS/Fedorasudo yum install pigz # 或 sudo dnf install pigz# Arch Linuxsudo pacman -S pigz 有几种方法可以将pigz集成到tar命令中,推荐使用tar的-I(或--use-compress-program)选项指定压缩程序。
tar -cvf - /path/to/dir | pigz -p 4 > archive.tar.gz 这里-p 4指定使用4个线程,你可以根据CPU核心数调整(如-p $(nproc)自动使用全部核心)。
tar -I pigz -cvf archive.tar.gz /path/to/dir 同样可以指定线程数:tar -I "pigz -p 4" -cvf archive.tar.gz /path/to/dir
我们以一个包含10GB文件的目录为例,分别测试单线程gzip和4线程pigz的压缩时间:
可以看到,使用多线程压缩后,速度提升了约3倍!核心越多,提升越明显。
tar -I pigz -xvf archive.tar.gz 或 pigz -dc archive.tar.gz | tar -xv。.tar.gz结尾,兼容性完全不变。通过将tar pigz结合,我们轻松实现了Linux压缩的多线程加速,极大缩短了备份和打包时间。无论是日常使用还是自动化脚本,都值得尝试。掌握这一技巧,让压缩速度不再成为瓶颈!
关键词:Linux压缩多线程压缩tar pigz压缩速度
本文由主机测评网于2026-02-21发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20260226395.html