Son Güncelleme: 20 Aug, 2026

GZIP vs BZIP2 vs XZ: Which Linux Compression Format Is Best?

GZIP vs BZIP2 vs XZ: Hangi Linux Sıkıştırma Formatı En İyi?

Günlük veritabanı dökümlerini paketliyor, çok gigabaytlık web sunucusu günlüklerini döndürüyor ya da derlenmiş ikili dosyaları binlerce düğüme dağıtıyor olun, sıkıştırma Linux yönetiminde günlük bir gerçektir.

tar komutunu çalıştırırken veya akış verisini standart giriş üzerinden işlerken, genellikle üç standart yardımcı programla karşılaşırsınız: GZIP (.gz), BZIP2 (.bz2), ve XZ (.xz).

Üç araç da ham baytları sıkıştırılmış arşivlere sığdırmayı hedeflerken, sıkıştırma oranı, CPU çalışma süresi ve bellek yükü arasında temelde farklı mühendislik tavizleri verirler. Yanlış formatı seçmek, otomatik dağıtımlarınızı sessizce darboğaza sokabilir, planlanan yedekleme pencerelerini geciktirebilir veya zamanla değerli depolama alanını boşa harcayabilir.

Bu rehber, her formatın altında nasıl çalıştığını, gerçekçi iş yüklerinde nasıl performans gösterdiğini ve altyapınız için doğru olanı nasıl seçeceğinizi ayrıntılı olarak açıklar.

1. Hızlı Teknik Profiller: Üç Aday

GZIP (GNU Zip)

  • Temel Algoritma: DEFLATE (combination of LZ77 and Huffman coding)
  • Varsayılan Uzantı: .tar.gz, .tgz, .gz
  • Yayın Dönemi: 1992 (created by Jean-loup Gailly and Mark Adler as a patent-free alternative to compress)
  • Temel Avantaj: Unbeatable execution speed and near-universal ecosystem support.
  • Temel Dezavantaj: Lower compression ratio compared to modern statistical and dictionary-based encoders.

GZIP, üç on yılı aşkın bir süredir Unix ortamlarının varsayılan iş gücü olarak hizmet vermektedir. DEFLATE algoritması küçük kayar pencereler (32 KB) ile çalıştığı için, GZIP sıkıştırma ve açma sırasında ihmal edilebilir bir bellek yüküne ihtiyaç duyar.

BZIP2

  • Temel Algoritma: Burrows-Wheeler Dönüşümü (BWT) Move-to-Front (MTF) dönüşümü ve Huffman kodlamasıyla birleştirilir
  • Varsayılan Uzantı: .tar.bz2, .tbz2, .bz2
  • Yayın Dönemi: 1996 (Julian Seward tarafından oluşturuldu)
  • Temel Avantaj: GZIP’ten daha iyi sıkıştırma oranları, tekrarlayan ASCII ve yapılandırılmış günlük dosyalarında.
  • Temel Dezavantaj: Genel olarak daha yavaştır, özellikle de sıkıştırma açma sırasında, ve büyük ölçüde yeni algoritmalar tarafından eskiyip kullanılmaz hâle gelmiştir.

BZIP2, verileri genellikle 900 KB olan ayrık bloklarda, kodlamadan önce benzer karakterleri bir araya getiren geri döndürülebilir permütasyonlar kullanarak işler. 1990’ların sonları ve 2000’lerin başında GZIP’in dosya boyutlarını aşmasıyla geniş çapta kutlandı, ancak işlem maliyeti nispeten yüksektir.

XZ (LZMA2)

  • Temel Algoritma: LZMA2 (Lempel-Ziv-Markov zinciri Algoritması, geliştirilmiş)
  • Varsayılan Uzantı: .tar.xz, .txz, .xz
  • Yayın Dönemi: 2009 (eski lzma formatının yerini alması için tanıtıldı)
  • Temel Avantaj: Son derece yüksek sıkıştırma oranları ve hızlı, hafif açma.
  • Temel Dezavantaj: İlk sıkıştırma sırasında yüksek RAM kullanımı ve uzun CPU çalışma süresi.

XZ, değişken sözlük boyutlarını (genellikle varsayılan olarak 32 MB veya 64 MB’a kadar) kullanarak GZIP’ten çok daha geniş veri pencerelerinde yinelenen bayt desenlerini bulur. Bu, işletim sistemi kurulum medyaları, çekirdek kaynak ağaçları ve donanım yazılımı görüntüleri gibi büyük, tekrarlayan dosyaları küçültmede son derece etkili olmasını sağlar.

2. Performans Karşılaştırma Matrisi

Aşağıdaki tablo, standart sunucu donanımında varsayılan yapılandırmalarla çalıştırıldığında her bir yardımcı programın pratik performans dinamiklerini özetlemektedir:

Metrik / BoyutGZIP (-6)BZIP2 (-9)XZ (-6)
Sıkıştırma OranıOrta (~%65-75 azalma)İyi (~%75-80 azalma)Üstün (~%80-88 azalma)
Sıkıştırma HızıÇok HızlıYavaşÇok Yavaş
Çözülme HızıAşırı HızlıYavaş ila OrtaHızlı
Sıkıştırma RAM Kullanımıİhmal edilebilir (~1–2 MB)Düşük (~8–10 MB)Yüksek (~100–700 MB+)
Çözme RAM Kullanımıİhmal edilebilir (< 1 MB)Düşük (~4 MB)Orta (~10–65 MB)
Birincil Tat NoktasıGünlükler, CI/CD boru hatları, gerçek zamanlı akışlarEski arşiv uyumluluğuPaket depoları, OS ISO’ları, soğuk depolama

3. Gerçek Dünya Benchmark İçgörüleri

Bu araçların gerçekçi yük altında nasıl davrandığını anlamak için, temsilci bir 1 GB ham sunucu erişim günlüğü ve sıkıştırılmamış 500 MB’lık bir yazılım kaynak kodu dizinini düşünün.

Senaryo A: Büyük Günlük Dosyalarını Sıkıştırma (1 GB Metin)

  • GZIP: 12 saniyenin altında tamamlanır, yaklaşık 180 MB’lık bir arşiv sunar.
  • BZIP2: Yaklaşık 45–50 saniye sürer, dosyayı yaklaşık 130 MB’ye düşürür.
  • XZ: Varsayılan ayarlarda 80–90 saniye sürer ve yaklaşık 95 MB bir arşiv üretir.

Senaryo B: Çözme İş Yükleri

Sık sık göz ardı edilen kritik bir ölçüt asimetridir.

  • GZIP 2–3 saniyede açılır ve çok az bellek kullanır.
  • XZ 4–6 saniyede açılır. İlk sıkıştırma yavaş olsa da, .xz dosyasını çıkarmak neredeyse .gz dosyasını çıkarmak kadar hızlıdır.
  • BZIP2 sadece açmak için yaklaşık 25–30 saniye gerektirir, çünkü Burrows‑Wheeler Dönüşümünü tersine çevirmek, onu kodlamaya göre hesaplamalı olarak simetriktir.

4. BZIP2 Neden Tercih Edilmemeye Başlıyor

Modern altyapıda, BZIP2 kendini rahatsız edici bir orta konumda bulur:

  1. GZIP tarafından hız açısından geride bırakılmış: İşlem gecikmesi veya düşük CPU kullanımı önemliyse, GZIP çok daha hızlıdır.
  2. XZ tarafından yoğunluk açısından geride bırakılmış: Bant genişliği tasarrufu ve depolama verimliliği önemliyse, XZ çok daha küçük arşivler üretir.
  3. Decompression hızında ikisi tarafından geride bırakılmış: Yazılım dağıtım sistemlerinde, istemciler .tar.bz2 dosyalarını .tar.gz veya .tar.xz dosyalarına göre çıkarırken ölçülebilir bir CPU cezası öderler.

Sonuç olarak, büyük Linux dağıtımları (Debian, Arch ve Fedora dahil) resmi paket dağıtımlarını ve çekirdek tarball’larını BZIP2’den XZ’ye (ve daha yakın zamanda çalışma zamanı işlemleri için Zstandard’a) kaydırdı.

5. Pratik Komut Satırı Kullanımı

Tar Entegrasyonu (En Yaygın İş Akışı)

GNU tar‘ın modern uygulamaları, dosya uzantısına göre sıkıştırma biçimini otomatik olarak tanır, ancak açık bayrakların kullanılması hâlâ standart bir uygulamadır:

# 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.*

Bağımsız Dosya Sıkıştırma

Tek tek dosyaları paketlemeden sıkıştırmak için:

# 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

Çok Çekirdekli Sistemlerin Kullanımı

Varsayılan olarak, bu araçların tek iş parçacıklı uygulamaları yalnızca bir CPU çekirdeği kullanır. Modern çok çekirdekli sunucularda çok gigabaytlık arşivleri sıkıştırıyorsanız, tek iş parçacıklı işlem saatler sürebilir.

  • XZ Çoklu İş Parçacığı: -T veya --threads aracılığıyla yerel destek:
    xz -T0 -k database_dump.sql   # Uses all available CPU cores
    
  • Paralel GZIP (pigz): GZIP işlemleri için tüm CPU çekirdeklerini kullanan bir takas (drop-in) ikame:
    pigz -k database_dump.sql
    
  • Paralel BZIP2 (pbzip2): BZIP2 için çok iş parçacıklı uygulama:
    pbzip2 -k database_dump.sql
    

6. Nasıl Seçilir: Pratik Karar Çerçevesi

Araç seçiminizi iş akışınızın temel kısıtlamasına göre yapın:

GZIP’i şu durumlarda kullanın:

  • Gerçek zamanlı akış sıkıştırması veya ağ iletimi kuruyorsunuz ve burada sınırlayıcı faktör aktarım hızıdır.
  • Üretim sunucularında otomatik günlük döndürme (logrotate) yönetiyorsunuz ve CPU kaynakları uygulama iş yükleri için ayrılmalıdır.
  • Eski gömülü sistemler ve standart temel imajlar arasında maksimum taşınabilirlik gereklidir.

XZ’yi şu durumlarda kullanın:

  • Üçüncü taraflar tarafından sıkça indirilen sürüm artefaktları, çekirdek derlemeleri, konteyner temel imajları veya statik paket depoları yayımlıyorsunuz.
  • Depolama maliyetlerinin tek seferlik sıkıştırma süresinden daha ağır bastığı uzun vadeli soğuk arşivler (saha dışı haftalık/aylık yedeklemeler) hazırlıyorsunuz.
  • Küçük dosya boyutlarına ihtiyacınız var, ancak kullanıcılarınız hâlâ hızlı indirme ve çabuk çıkarma süreleri talep ediyor.

BZIP2’yi yalnızca şu durumlarda tutun:

  • Eski betikler, mevcut yedekleme geri yükleme rutinleri veya XZ açıcı sağlamayan yazılım aygıtlarıyla geriye dönük uyumluluğu koruyorsunuz.

7. Sıkça Sorulan Sorular (SSS)

S1. Hangi format en küçük arşiv boyutunu sağlar? XZ, daha büyük LZMA2 sözlük pencereleri sayesinde üçü arasında tutarlı olarak en küçük arşiv boyutunu üretir.

S2. XZ, dosyaları açarken GZIP’ten daha mı yavaştır? XZ, açma konusunda GZIP’ten sadece biraz daha yavaştır, ancak BZIP2’den oldukça daha hızlıdır.

S3. GZIP ve XZ birden fazla CPU çekirdeğinden yararlanabilir mi? XZ, -T0 bayrağını kullanarak yerel çok iş parçacıklı desteğe sahiptir, GZIP ise pigz yardımcı programı ile çekirdekler arasında paralelleştirilebilir.

S4. Linux dağıtımları neden BZIP2’yi bırakıyor? Dağıtımlar, XZ’nin daha küçük sıkıştırma ve daha hızlı açma sağladığı için BZIP2’yi büyük ölçüde bıraktı, GZIP ise hızlı işlemler için hâlâ daha hızlıdır.

S5. -9 gibi daha yüksek bir sıkıştırma seviyesi belirgin bir fark yaratır mı? -9 seviyesini ayarlamak ortalama olarak sadece %1 ila %3 arasında küçük bir boyut azalması sağlar, ancak CPU döngüsü tüketimini ve bellek yükünü önemli ölçüde artırır.

Ayrıca Bakınız