pigz – 搭配 tar – Linux 使用 pigz 平行 gzip 壓縮、解壓縮

現在 CPU 核心越來越多,threads 也是一樣,單純用 gzip 來壓縮只會使用一個 core 來跑到極致,pigz 如同說明的:

pigz

就是告訴你說可以用很多核心來跑 gzip

A parallel implementation of gzip for modern
multi-processor, multi-core machines

常用參數說明

跟 gunzip 一樣

-k Do not delete original file after processing.
# 保留原始檔案

核心數

-p ${1~n} Allow up to n processes (default is the number of online processors)
# 看有幾個核心,就用幾個去跑

壓縮比

-# --fast --best
-0~-11 
預設壓縮比是 -6,--fast 是 -1,--best 是 -9

我個人是偏好使用 -1,因為大小真的不會差異很大,而且壓縮時間差很多,不過也是看檔案,如果都是圖片當然不用壓縮,如果都是文字,壓縮比越大越小。

解壓縮

-d --decompress --uncompress
# Decompress the compressed input.

搭配 tar 使用

將 j7.lb168.tw 壓縮,使用 4 個核心,分別測試:

  • 壓縮比 -1
  • 壓縮比 -6
  • 壓縮比 -9
tar -I "pigz -1 -p 4" -cf j7.lb168.tw-1.tar.gz -C /var/www j7.lb168.tw

壓縮結果

所以選擇 -1 的壓縮比是對的XD