天天看點

Linux中使用pigz工具更快的壓縮和解壓檔案

一、概述

pigz(parallel implementation of gzip)是一個并行執行的壓縮工具,解壓縮比gzip快,同時CPU消耗是gzip的好幾倍,在對短時間内CPU消耗較高不受影響的場景下,可以使用pigz。

二、安裝

環境說明

作業系統:centos 7.6

配置:4核8g

安裝

先安裝epel擴充源,再安裝pigz

yum install -y epel-release
yum makecache
yum -y install pigz      

如何壓縮檔案

下面幾個是常用參數:

-p n: 壓縮時使用的核心數量,預設使用所有核心
-k: 壓縮後保留源檔案
-l: 列出壓縮輸入的内容。
-6: 預設的壓縮級别
-9: 壓縮率最高,但是速度慢
-1: 壓縮率最低,速度最快      

例如:壓縮FreeNAS-11.2-U7.iso檔案,如果需要保留源檔案,可以添加-k參數:

pigz -k FreeNAS-11.2-U7.iso       

可以使用-l選項檢視壓縮後檔案的壓縮率:

pigz -l FreeNAS-11.2-U7.iso.gz       

如何壓縮目錄

Pigz沒有壓縮檔案夾的選項,隻可以壓縮單個檔案。pigz可以和tar指令一起使用,來壓縮檔案夾。

tar -cf - /var/log | pigz -k > logs.tar.gz      

檢視一下壓縮資訊:

pigz -l logs.tar.gz       

如何解壓檔案

解壓單個檔案,解壓方式:

unpigz -d FreeNAS-11.2-U7.iso.gz       

如果需要保留源壓縮檔案,請添加-k參數

pigz -k -d FreeNAS-11.2-U7.iso.gz       

解壓一個目錄,解壓方式:

tar -xf logs.tar.gz       

總結

pigz是一個并行執行的壓縮工具,解壓縮比gzip快,同時CPU消耗是gzip的好幾倍,在對短時間内CPU消耗較高不受影響的場景下,可以使用pigz。

三、壓縮速度對比

我的/opt目錄有15g,下面來測試tar和pigz,對/opt進行壓縮。

tar壓縮

time tar -cf - /opt | pigz -k > opt1.tar.gz      

執行輸出:

real    7m53.205s
user    6m42.194s
sys    0m32.886s      

花費了7分53秒

pigz壓縮

time tar -cf - /opt | pigz -k > opt2.tar.gz      

輸出:

real    4m35.899s
user    6m27.790s
sys    0m31.144s      

花費了4分35秒

從結果上來對比,pigz顯然更快,換算一下,大概快了41.8%

本文參考連結:

https://www.linuxprobe.com/linux-pigz-compress.html

繼續閱讀