Legutóbb frissítve: 2026. aug. 20.

GZIP vs BZIP2 vs XZ: Melyik Linux tömörítési formátum a legjobb?
Akár napi adatbázis-mentéseket csomagol, akár több gigabájtos webszerver naplókat forgat, vagy összeállított binárisokat oszt el több ezer csomópont között, a tömörítés a Linux adminisztráció mindennapi valósága.
A tar parancs meghívásakor vagy a szabványos bemeneten keresztül áramló adatok feldolgozásakor általában három szabványos segédprogrammal találkozik: GZIP (.gz), BZIP2 (.bz2), és XZ (.xz).
Miközben mindhárom eszköz célja, hogy a nyers bájtokat kompakt archívumokká tömörítse, alapvetően különböző mérnöki kompromisszumokat hoznak a tömörítési arány, a CPU futási idő és a memóriaigény között. A rossz formátum kiválasztása csendben szűkítheti az automatizált telepítéseket, késleltetheti az ütemezett mentési időablakokat, vagy idővel értékes tárhelyet pazarolhat.
Ez az útmutató részletezi, hogyan működik minden formátum a háttérben, hogyan teljesítenek a valós munkaterhelések során, és hogyan válasszuk ki a megfelelőet az infrastruktúrához.
1. Gyors technikai profilok: A három versenyző
GZIP (GNU Zip)
- Underlying Algorithm: DEFLATE (LZ77 és Huffman kódolás kombinációja)
- Alapértelmezett kiterjesztés:
.tar.gz,.tgz,.gz - Kiadás éve: 1992 (Jean-loup Gailly és Mark Adler által létrehozott szabadalomtól mentes alternatíva a
compresshelyett) - Alapvető előny: Legyőzhetetlen végrehajtási sebesség és szinte mindenhol elérhető ökoszisztéma támogatás.
- Alapvető hátrány: Alacsonyabb tömörítési arány a modern statisztikai és szótár-alapú kódolókkal összehasonlítva.
A GZIP több mint három évtizede a Unix környezetek alapértelmezett munkagépe. Mivel a DEFLATE algoritmusa kis csúszóablakokkal (32 KB) működik, a GZIP tömörítés és kitömörítés során elhanyagolható memóriaigényt igényel.
BZIP2
- Alapvető algoritmus: Burrows-Wheeler transzformáció (BWT) kombinálva a Move-to-Front (MTF) transzformációval és Huffman kódolással
- Alapértelmezett kiterjesztés:
.tar.bz2,.tbz2,.bz2 - Kiadási időszak: 1996 (készítette Julian Seward)
- Fő előny: Jobb tömörítési arányok ismétlődő ASCII és strukturált naplófájlok esetén, mint a GZIP.
- Fő hátrány: Általában lassabb, különösen a kitömörítés során, és nagyrészt elavulttá vált az újabb algoritmusok által.
A BZIP2 adatokat diszkrét blokkokban (általában 900 KB) dolgozza fel, visszafordítható permutációkat használva, amelyek a hasonló karaktereket kódolás előtt csoportosítják. Bár a 1990-es évek vége és a 2000-es évek elején széles körben elismerték, mivel kisebb fájlméreteket eredményezett, mint a GZIP, a számítási költsége viszonylag magas.
XZ (LZMA2)
- Alapvető algoritmus: LZMA2 (Lempel-Ziv-Markov lánc algoritmus, továbbfejlesztett)
- Alapértelmezett kiterjesztés:
.tar.xz,.txz,.xz - Kiadási korszak: 2009 (bevezetve, hogy felvegye a helyét a régebbi
lzmaformátumnak) - Alapvető előny: Kivételesen magas tömörítési arányok és gyors, könnyű súlyú kitömörítés.
- Alapvető hátrány: Nagy RAM használat és hosszú CPU futási idő az első tömörítés során.
Az XZ változó szótárméreteket (gyakran akár 32 MB vagy 64 MB alapértelmezés szerint) használ, hogy duplikált bájtmintákat találjon sokkal szélesebb adatablakokban, mint a GZIP. Ez rendkívül hatékonnyá teszi a nagy, redundáns fájlok, például operációs rendszer telepítő médiák, kernel forrásfák és firmware képek zsugorításában.
2. Teljesítmény-összehasonlítási mátrix
Az alábbi táblázat összefoglalja az egyes segédprogramok gyakorlati teljesítménydinamikáját, amikor alapértelmezett beállításokkal futnak standard szerver hardveren:
| Metrika / Dimenzió | GZIP (-6) | BZIP2 (-9) | XZ (-6) |
|---|---|---|---|
| Tömörítési arány | Mérsékelt (~65-75% csökkenés) | Jó (~75-80% csökkenés) | Kiváló (~80-88% csökkenés) |
| Tömörítési sebesség | Nagyon gyors | Lassú | Nagyon lassú |
| Kitömörítési sebesség | Rendkívül gyors | Lassú‑közepes | Gyors |
| Tömörítés RAM használata | Elhanyagolható (~1–2 MB) | Alacsony (~8–10 MB) | Magas (~100–700 MB+) |
| Kicsomagolás RAM használata | Elhanyagolható (< 1 MB) | Alacsony (~4 MB) | Mérsékelt (~10–65 MB) |
| Elsődleges kedvező pont | Naplók, CI/CD csővezetékek, valós idejű adatfolyamok | Örökölt archívum kompatibilitás | Csomag tárolók, OS ISO-k, hideg tárolás |
3. Valós világú benchmark-elemzések
Ahhoz, hogy megértsük, hogyan viselkednek ezek az eszközök valós terhelés alatt, vegyünk egy reprezentatív 1 GB nyers szerver hozzáférési naplót és egy tömörítetlen 500 MB szoftver forráskód könyvtárat.
Forgatókönyv A: Nagy naplófájlok tömörítése (1 GB szöveg)
- GZIP: Kevesebb mint 12 másodperc alatt befejeződik, körülbelül 180 MB körüli archívumot eredményez.
- BZIP2: Körülbelül 45–50 másodperc alatt fejeződik be, a fájlt körülbelül 130 MB-ra csökkentve.
- XZ: Alapbeállításoknál 80–90 másodpercet vesz igénybe, és körülbelül 95 MB méretű archívumot eredményez.
Forgatókönyv B: Kicsomagolási terhelések
Egy gyakran figyelmen kívül hagyott kritikus mérőszám a aszimmetria.
- GZIP 2–3 másodperc alatt tömörítést bontja ki, mikroszkopikus memóriahasználattal.
- XZ 4–6 másodperc alatt bontja ki a tömörítést. Bár a kezdeti tömörítés lassú volt, a
.xzkicsomagolása majdnem olyan gyors, mint a.gzkicsomagolása. - BZIP2 körülbelül 25–30 másodpercet igényel csak a kicsomagoláshoz, mivel a Burrows‑Wheeler transzformáció visszafordítása számítási szempontból szimmetrikus a kódolással.
4. Miért veszít a BZIP2 népszerűsége
A modern infrastruktúrában a BZIP2 egy kényelmetlen középúton találja magát:
- A GZIP gyorsabb: Ha a feldolgozási késleltetés vagy az alacsony CPU‑használat fontos, a GZIP jelentősen gyorsabb.
- Az XZ sűrűségben jobb: Ha a sávszélesség megtakarítása és a tárolási hatékonyság számít, az XZ lényegesen kisebb archívumokat hoz létre.
- Mindkettő gyorsabb kibontási sebességben: A szoftverszállítási rendszerekben az ügyfelek mérhető CPU-költséget fizetnek a
.tar.bz2fájlok kibontásáért a.tar.gzvagy.tar.xzfájlokhoz képest.
Ennek következtében a főbb Linux disztribúciók (köztük a Debian, az Arch és a Fedora) elmozdították hivatalos csomag- és kernel-tarballjaikat a BZIP2-ről az XZ felé (és a közelmúltban a Zstandard-re a futásidejű műveletekhez).
5. Gyakorlati parancssori használat
Tar integráció (a leggyakoribb munkafolyamat)
A GNU tar modern megvalósításai automatikusan felismerik a tömörítési formátumot a fájlkiterjesztés alapján, de az explicit kapcsolók használata továbbra is szabványos gyakorlat:
# GZIP: Fast archive creation
tar -czvf project-backup.tar.gz /var/www/project/
# BZIP2: Legacy high-ratio archive
tar -cjvf project-backup.tar.bz2 /var/www/project/
# XZ: Maximum space savings
tar -cJvf project-backup.tar.xz /var/www/project/
# Generic extraction (tar auto-detects the format)
tar -xvf archive-name.tar.*
Önálló fájl tömörítés
Egyedi fájlok tömörítése csomagolás nélkül:
# Compress keeping the original file intact (-k)
gzip -k access.log # Output: access.log.gz
bzip2 -k access.log # Output: access.log.bz2
xz -k access.log # Output: access.log.xz
# Decompress individual files
gzip -d access.log.gz
bzip2 -d access.log.bz2
xz -d access.log.xz
Többmagos rendszerek kihasználása
Alapértelmezés szerint ezeknek az eszközöknek az egymagos (single-threaded) megvalósításai csak egy CPU magot használnak. Ha több gigabájtos archívumokat tömörítesz modern többmagos szervereken, az egymagos feldolgozás órákat vehet igénybe.
- XZ többmagos feldolgozás: Natív támogatás a
-Tvagy--threadskapcsolóval:xz -T0 -k database_dump.sql # Uses all available CPU cores - Párhuzamos GZIP (
pigz): Egy azonnal használható helyettesítő, amely a GZIP műveletekhez az összes CPU magot kihasználja:pigz -k database_dump.sql - Párhuzamos BZIP2 (
pbzip2): Többmagos megvalósítás a BZIP2-hez:pbzip2 -k database_dump.sql
6. Hogyan válasszunk: Gyakorlati döntési keretrendszer
Válaszd ki az eszközt a munkafolyamatod legfontosabb korlátozása alapján:
Használja a GZIP-et, ha:
- Valós idejű adatfolyam tömörítést vagy hálózati átvitel beállításán dolgozol, ahol a sávszélesség a korlátozó tényező.
- Automatizált naplórotációt (
logrotate) kezelsz a termelési szervereken, ahol a CPU-erőforrásokat az alkalmazás terhelésének kell fenntartani. - Maximális hordozhatóságra van szükség a régi beágyazott rendszerek és a szabványos alapképek között.
Használja az XZ-et, ha:
- Kiadási artefaktusokat, kernel buildeket, konténer alapképeket vagy statikus csomagtárakat publikálsz, amelyeket gyakran töltenek le harmadik felek.
- Hosszú távú hideg archívumokat (helyszíntől távoli heti/havi mentéseket) készítesz, ahol a tárolási költségek meghaladják az egyszeri tömörítési időt.
- Kis fájlméretre van szükséged, de a felhasználók továbbra is gyors letöltést és gyors kibontási időt igényelnek.
Tartsa a BZIP2-t csak akkor, ha:
- Fenntartod a visszafelé kompatibilitást régi szkriptekkel, meglévő visszaállítási rutinokkal vagy szoftvereszközökkel, amelyek nem biztosítanak
XZkitömörítőt.
7. Gyakran Ismételt Kérdések (GYIK)
Q1. Melyik formátum biztosítja a legkisebb archívumméretet? Az XZ következetesen a három közül a legkisebb archívumméretet állítja elő, nagyobb LZMA2 szótárablakok miatt.
Q2. Az XZ lassabb-e a GZIP-nél a fájlok kitömörítésekor? Az XZ csak kissé lassabb a GZIP-nél a kitömörítés során, de lényegesen gyorsabb a BZIP2-nél.
Q3. A GZIP és az XZ kihasználhatja a több CPU magot? Az XZ natív több szálas feldolgozást támogat a -T0 kapcsolóval, míg a GZIP párhuzamosítható a magok között a pigz helyettesítő segédprogram használatával.
Q4. Miért hagyják el a Linux disztribúciók a BZIP2-t? A disztribúciók nagyrészt elhagyták a BZIP2-t, mert az XZ kisebb méretű tömörítést és gyorsabb kitömörítést biztosít, míg a GZIP továbbra is gyorsabb a gyors műveletekhez.
Q5. Jelentős különbséget okoz-e a magasabb tömörítési szint, például a -9? A -9 szint beállítása átlagosan csak 1%‑tól 3%-ig terjedő, marginális méretcsökkenést eredményez, miközben drámaian növeli a CPU-ciklusok fogyasztását és a memóriaigényt.