Linux並行gzip壓縮工具pigz

由於項目原因,經常需要壓縮和解壓縮大量的數據。10G規模以上,而默認tar打包和系統默認的壓縮工具是單線程的。服務器多核CPU完全利用不起來,瓶頸在CPU的處理上面。於是使用了pigz這個可以利用多核的並行壓縮工具。效果顯著,如果你也需要頻繁壓縮大量的數據,可以嘗試一下這個軟件。

1. 安裝

centos & redhat系

yum install pigz

debian & ubuntu系

apt-get install pigz

2. 使用

壓縮

其中packages是要壓縮的目錄,packages.tgz是壓縮後的名稱。

tar --use-compress-program=pigz -cpvf packages.tgz packages 

解壓

tar --use-compress-program=pigz -xvf packages.tgz

3. 對比

我的服務器配置是:
CPU:Intel E5-2620 CPU,雙CPU,共12核,24線程
內存:32G內存
硬盤:RAID0 雙盤 SAS機械盤
壓縮包的大小是壓縮前33G,壓縮後10G

單線程解壓用時:5分36秒

命令:

time tar -xvf rpms.tgz

image.png

pigz多線程解壓用時: 3分2秒

命令:

time tar --use-compress-program=pigz -xvf rpms.tgz

image.png

單線程壓縮用時:20分35秒

命令:

time tar -cpzvf - packages | split -b 3500m -d - rpms.tgz

image.png

pigz多線程壓縮用時:2分8秒

命令:

time tar --use-compress-program=pigz -cpvf - packages | split -b 3500m -d - rpms.tgz

image.png

4. 總結

在我的服務器上面速度還是有很明顯提升的,尤其是壓縮時間,提高了10倍。解壓時間也提升了一倍左右。如果需要大量的壓縮和解壓縮工作,效率還是會提高很多的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章