Son Yenilənmə: 20 Avqust, 2026

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

GZIP vs BZIP2 vs XZ: Hansi Linux Sıxışdırma Formatı Ən Yaxşıdır?

Günlük verilənlər bazası dump-larını paketləsəniz, çox gigabaytlıq veb server loglarını dövrləsəniz və ya minlərlə node-a tərtib edilmiş ikili faylları paylansanız, sıxma Linux idarəçiliyində gündəlik bir reallıqdır.

tar çağırdığınızda və ya standart giriş vasitəsilə axın məlumatlarını emal edərkən, adətən üç standart alətlə qarşılaşırsınız: GZIP (.gz), BZIP2 (.bz2), və XZ (.xz).

Üç alətin hamısı xam baytları sıxılmış arxivlərə yığmağa çalışsa da, sıxma nisbəti, CPU icra müddəti və yaddaş yükü arasında əsasən fərqli mühəndislik ticarət balansları qururlar. Yanlış formatı seçmək avtomatlaşdırılmış yerləşdirmələrinizdə səssizcə dar boğaz yarada, planlaşdırılmış ehtiyat nüsxə pəncərələrini dayandıra və ya zamanla dəyərli saxlama məkanını israf edə bilər.

Bu bələdçi hər bir formatın arxa planda necə işlədiyini, real iş yükləri üzrə necə performans göstərdiyini və infrastrukturunuz üçün doğru olanı necə seçəcəyinizi izah edir.

1. Tez Texniki Profillər: Üç Rəqib

GZIP (GNU Zip)

  • Əsas Alqoritm: DEFLATE (LZ77 və Huffman kodlamasının birləşməsi)
  • Standart Uzantı: .tar.gz, .tgz, .gz
  • Buraxılış Dövrü: 1992 (Jean-loup Gailly və Mark Adler tərəfindən compress-a patentsiz alternativ kimi yaradılıb)
  • Əsas Üstünlük: Qazandırıla bilməyən icra sürəti və demək olar ki, universal ekosistem dəstəyi.
  • Əsas Çatışmazlıq: Müasir statistik və lüğət əsaslı kodlayıcılarla müqayisədə daha aşağı sıxma nisbəti.

GZIP üç onillikdən çox müddət ərzində Unix mühitlərinin standart işçi vasitəsi kimi xidmət edib. DEFLATE alqoritmi kiçik sürüşən pəncərələrlə (32 KB) işlədiyi üçün, GZIP həm sıxma, həm də açma zamanı demək olar ki, yaddaş yükü tələb etmir.

BZIP2

  • Əsas Alqoritm: Burrows-Wheeler Transform (BWT) combined with Move-to-Front (MTF) transform and Huffman coding
  • Standart Uzantı: .tar.bz2, .tbz2, .bz2
  • Buraxılış Dövrü: 1996 (created by Julian Seward)
  • Əsas Üstünlük: GZIP-dən daha təkrarlanan ASCII və strukturlaşdırılmış jurnal fayllarında daha yaxşı sıxılma nisbətləri.
  • Əsas Çatışmazlıq: Ümumi olaraq daha yavaşdır, xüsusilə dekompressiya zamanı, və yeni alqoritmlər tərəfindən əsasən köhnəlmişdir.

BZIP2, məlumatları ayrı-ayrı bloklarda (adətən 900 KB) emal edir, kodlaşdırmadan əvvəl oxşar simvolları bir araya gətirən geri çevrilə bilən permutasiyalardan istifadə edir. 1990-cı illərin sonu və 2000-ci illərdə GZIP-in fayl ölçülərini aşması ilə geniş tərif olunmuş olsa da, hesablama xərci nisbətən yüksəkdir.

XZ (LZMA2)

  • Əsas Alqoritm: LZMA2 (Lempel-Ziv-Markov chain Algorithm, təkmilləşdirilmiş)
  • Standart Uzantı: .tar.xz, .txz, .xz
  • Buraxılış Dövrü: 2009 (köhnə lzma formatını əvəz etmək üçün təqdim edildi)
  • Əsas Üstünlük: Çox yüksək sıxma nisbətləri və sürətli, yüngül dekompressiya.
  • Əsas Çatışmazlıq: İlk sıxma zamanı yüksək RAM istifadəsi və uzun CPU işləmə müddəti.

XZ dəyişkən lüğət ölçülərindən (tez-tez standart olaraq 32 MB və ya 64 MB‑ə qədər) istifadə edərək, GZIP‑dən çox daha geniş məlumat pəncərələrində təkrarlanan bayt nümunələrini tapır. Bu, OS quraşdırma media, kernel mənbə ağacları və firmware şəkilləri kimi böyük, təkrarlanan faylları kiçiltməkdə son dərəcə təsirli edir.

2. Performans Müqayisə Matrisi

Aşağıdakı cədvəl, standart server avadanlığında standart konfiqurasiyalarla işlədikdə hər bir alətin praktiki performans dinamikasını xülasə edir:

Metrik / ÖlçüGZIP (-6)BZIP2 (-9)XZ (-6)
Sıxışdırma NisbətiOrta (~65-75% azalma)Yaxşı (~75-80% azalma)Üstün (~80-88% azalma)
Sıxışdırma SürətiÇox SürətliYavaşÇox Yavaş
Dekompressiya SürətiÇox SürətliYavaşdan ortaSürətli
Sıxışdırma RAM İstifadəsiƏhəmiyyətsiz (~1–2 MB)Aşağı (~8–10 MB)Yüksək (~100–700 MB+)
Dezkompressiya RAM İstifadəsiƏhəmiyyətsiz (< 1 MB)Aşağı (~4 MB)Orta (~10–65 MB)
Əsas Ideal NöqtəJurnallar, CI/CD boru kəmərləri, real‑vaxt axınlarıKöhnə arxiv uyğunluğuPaket repoları, OS ISO‑ları, soyuq saxlama

3. Real-World Benchmark Insights

Bu alətlərin real yüklə necə işlədiyini başa düşmək üçün, təmsilçi 1 GB xam server giriş jurnalını və sıxılmamış 500 MB proqram mənbə kodu qovluğunu nəzərə alın.

Ssenari A: Böyük Log Fayllarının Sıxılması (1 GB Mətn)

  • GZIP: 12 saniyədən az müddətdə tamamlanır, təxminən 180 MB ölçülü arxiv təqdim edir.
  • BZIP2: Təxminən 45–50 saniyə ərzində tamamlanır, faylı təxminən 130 MB‑a azaldır.
  • XZ: Defolt ayarlarla 80–90 saniyə çəkir, təxminən 95 MB ölçülü arxiv yaradır.

Ssenari B: Açma İş Yükü

Tez-tez gözardı edilən kritik ölçü asimmetriyadır.

  • GZIP 2–3 saniyədə açılır, mikroskopik yaddaş istifadəsi ilə.
  • XZ 4–6 saniyədə açılır. İlk sıxışdırma yavaş olsa da, .xz faylını çıxarmaq, .gz faylını çıxarmaq qədər sürətlidir.
  • BZIP2 təxminən 25–30 saniyə tələb edir, çünki Burrows-Wheeler Transformunun tərs çevrilməsi hesablama baxımından kodlamaya bərabər simmetrikdir.

4. Niyə BZIP2 Populyarlığını itirir

Müasir infrastrukturda, BZIP2 özünü çətin bir orta mövqedə tapır:

  1. GZIP tərəfindən sürət baxımından üstələnir: Əgər emal gecikməsi və ya az CPU istifadəsi vacibdirsə, GZIP xeyli daha sürətlidir.
  2. XZ tərəfindən sıxlıq baxımından üstələnir: Əgər bant genişliyinin qorunması və saxlanma səmərəliliyi vacibdirsə, XZ əhəmiyyətli dərəcədə kiçik arxivlər yaradır.
  3. Hər iki tərəfindən açma sürətində geridə qalır: Proqram təminatı çatdırma sistemlərində, müştərilər .tar.bz2 fayllarını .tar.gz və ya .tar.xz ilə müqayisədə çıxararkən ölçülə bilən CPU cəzasına məruz qalırlar.

Nəticədə, əsas Linux paylamaları (Debian, Arch və Fedora daxil olmaqla) rəsmi paket paylamalarını və kernel tarballarını BZIP2-dən XZ-yə (və daha yeni, iş vaxtı əməliyyatları üçün Zstandard-a) köçürmüşlər.

5. Praktik Komanda Sətiri İstifadəsi

Tar İnteqrasiyası (Ən Çox Yayılmış İş Axını)

GNU tar-ın müasir tətbiqləri fayl uzantısına əsaslanaraq sıxma formatını avtomatik tanıyır, lakin açıq flag-lardan istifadə hələ də standart təcrübədir:

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

Müstəqil Fayl Sıxılması

Faylları birləşdirmədən ayrı-ayrılıqda sıxmaq üçün:

# 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

Çox nüvəli sistemlərin istifadəsi

Standart olaraq, bu alətlərin tək-iplə işləyən tətbiqləri yalnız bir CPU nüvəsindən istifadə edir. Müasir çox nüvəli serverlərdə çox gigabaytlıq arxivləri sıxırsınızsa, tək-iplə işləmə saatlarla davam edə bilər.

  • XZ Çox-İplik: -T və ya --threads vasitəsilə yerli dəstək:
    xz -T0 -k database_dump.sql   # Uses all available CPU cores
    
  • Paralel GZIP (pigz): GZIP əməliyyatları üçün bütün CPU nüvələrindən istifadə edən birbaşa əvəzləyici:
    pigz -k database_dump.sql
    
  • Paralel BZIP2 (pbzip2): BZIP2 üçün çox-iplə tətbiq:
    pbzip2 -k database_dump.sql
    

6. Necə seçmək: Praktik qərar çərçivəsi

İş axınınızın əsas məhdudiyyətinə əsasən alətinizi seçin:

GZIP istifadə edin əgər:

  • Real‑vaxt axını sıxışdırması və ya şəbəkə ötürülməsi qurursunuz və burada ötürmə sürəti məhdudlaşdırıcı amildir.
  • İstehsal serverlərində avtomatlaşdırılmış jurnal dövriyyəsini (logrotate) idarə edirsiniz və burada CPU resursları tətbiq iş yükləri üçün ayrılmalıdır.
  • Köhnə gömülü sistemlər və standart əsas görüntülər arasında maksimum daşınabilirlik tələb olunur.

XZ istifadə edin əgər:

  • Üçüncü tərəflər tərəfindən tez-tez yüklənən buraxılış artefaktları, kernel qurğuları, konteyner əsas görüntüləri və ya statik paket repozitoriyalarını yayımlayırsınız.
  • Uzunmüddətli soyuq arxivlər (ofis xaricində həftəlik/aylıq ehtiyat nüsxələr) hazırlayırsınız və burada saxlanma xərcləri bir dəfəlik sıxışdırma vaxtından daha çoxdur.
  • Kiçik fayl ölçülərinə ehtiyacınız var, lakin istifadəçiləriniz hələ də sürətli yükləmə və tez çıxarılma vaxtı tələb edir.

BZIP2 yalnız aşağıdakı hallarda saxlayın:

  • Köhnə skriptlər, mövcud ehtiyat nüsxə bərpa prosedurları və ya XZ dekompressor təmin etməyən proqram avadanlıqları ilə geriyə uyğunluğu qoruyursunuz.

7. Tez-tez Soruşulan Suallar (FAQ)

S1. Hansı format ən kiçik arxiv ölçüsünü təmin edir? XZ, daha böyük LZMA2 lüğət pəncərələri sayəsində üçü arasında davamlı olaraq ən kiçik arxiv ölçüsünü yaradır.

S2. Faylları açarkən XZ, GZIP-dən daha yavaşdırmı? XZ, açma sürətində GZIP-dən yalnız bir qədər yavaşdır, lakin BZIP2-dən əhəmiyyətli dərəcədə sürətlidir.

S3. GZIP və XZ çoxsaylı CPU nüvələrindən istifadə edə bilirlərmi? XZ, -T0 bayrağı ilə yerli çoxnöqtəli işləməni dəstəkləyir, GZIP isə pigz əlavə aləti ilə nüvələr arasında paralel işləməyə imkan verir.

S4. Niyə Linux paylamaları BZIP2‑ni ləğv edir? Paylamalar BZIP2‑ni əsasən aradan qaldırıb, çünki XZ daha kiçik sıxışdırma və daha sürətli açma təmin edir, GZIP isə sürətli əməliyyatlar üçün daha sürətlidir.

S5. -9 kimi daha yüksək sıxışdırma səviyyəsi nəzərəçarpacaq fərq yaradırmı? -9 səviyyəsini təyin etmək orta hesabla yalnız 1%‑dən 3%‑ə qədər kiçik ölçü azaldılması verir, lakin CPU dövrlərinin istifadəsini və yaddaş yükünü xeyli artırır.

Baxın