在資料備份、日誌輪轉、鏡像傳輸等場景,壓縮速度往往成為瓶頸。傳統 gzip 單執行緒特性在多核心 CPU 時代顯得捉襟見肘,而 pigz(Parallel Implementation of GZip) 正是為此而生。本文透過實際基準測試,量化分析兩者在壓縮速度、解壓縮速度、壓縮率、CPU 佔用等關鍵指標上的差異,為您選型提供數據支撐。
| 檔案 | 工具 | 執行緒 | 壓縮實時 | 解壓縮實時 | 壓縮後大小 | 壓縮比 | 峰值 CPU% |
|---|---|---|---|---|---|---|---|
| dbs.tar (2.3 GB) | gzip | 1 | 2 分 18 秒 | 26.8 秒 | 2.20 GB | 95.1% | 101% |
| pigz | 8 (預設) | 21.7 秒 | 13.2 秒 | 2.20 GB | 95.1% | 832% | |
| pigz | 4 | 38.3 秒 | 13.3 秒 | 2.20 GB | 95.1% | 428% | |
| pigz | 1 (參考) | ~2 分 15 秒 | ~26 秒 | 2.20 GB | 95.1% | ~100% | |
| mysql-5.5.28.tar (4.9 GB) | gzip | 1 | 6 分 20 秒 | 58.9 秒 | 1.31 GB | 26.7% | 101% |
| pigz | 8 (預設) | 1 分 12 秒 | 33.2 秒 | 1.31 GB | 26.7% | 799% | 832% |
| pigz | 4 | 1 分 42 秒 | 33.1 秒 | 1.31 GB | 26.7% | 418% | |
| pigz | 1 (參考) | ~6 分 15 秒 | ~58 秒 | 1.31 GB | 26.7% | ~100% |

gzip -d 處理。pigz -p4)或使用 nice/ionice 降低優先權。| 場景 | 建議工具與參數 | 理由 |
|---|---|---|
| 離線備份/歸檔(獨佔機器) | pigz -p$(nproc) --best |
最大化吞吐,最短完成時間 |
| 線上生產備份(共用資源) | pigz -p4 --fast | nice -n 10 ionice -c2 -n7 |
限制執行緒與優先權,避免爭搶 CPU/IO |
| 跨平台分發/嵌入式設備 | gzip |
普遍相容,無額外依賴 |
| 日誌輪轉(logrotate) | compresscmd pigz -p2 |
平衡速度與資源佔用 |
# Debian/Ubuntu
apt-get install pigz
# RHEL/CentOS/Fedora
dnf install pigz
# macOS
brew install pigz
# 常用參數
pigz -p N # 指定執行緒數(預設邏輯核心數)
pigz -d # 解壓縮(相當於 unpigz)
pigz -k # 保留原始檔案
pigz -1 .. -9 # 壓縮等級(預設 -6,-1 最快,-9 最小)
pigz --fast # 等同 -1
pigz --best # 等同 -9
pigz -c < file > file.gz # 標準輸入/輸出管線模式
在現代多核心硬體上,pigz 是 gzip 的近乎完美替代品:相容格式、壓縮率持平、壓縮/解壓縮速度提升 2–6 倍。唯一代價是 CPU 佔用率成倍上升,生產環境請務必配合執行緒限制與優先權控制。對於「壓縮窗口有限、CPU 閒置充足」的備份、遷移、打包場景,pigz 應列為首選工具。