GNU/Linux >> Belajar Linux >  >> Linux

Pigz – Kompres Dan Dekompresi File Secara Paralel Di Linux

Babi , kependekan dari p aralel i implementasi gz ip, adalah utilitas kompresi multi-utas sumber terbuka gratis untuk mengompres dan membuka kompres file di Linux. Pigz, diucapkan sebagai babi-zee , menggunakan zlib dan pthread perpustakaan dan mengambil keuntungan penuh dari beberapa prosesor dan beberapa inti saat mengompresi data. Karena pigz mengompres menggunakan utas untuk menggunakan beberapa prosesor dan inti, ia dapat mengarsipkan file yang lebih besar lebih cepat daripada dengan gzip. Sederhananya, pigz melakukan apa yang gzip lakukan, tetapi ia mengalokasikan pekerjaan ke beberapa prosesor dan inti saat mengompresi dan mempercepat proses kompresi/dekompresi secara signifikan. Dalam panduan ini, mari kita belajar mengompres dan mendekompresi file secara paralel menggunakan Pigz di Linux.

Instal Pigz Di Linux

Pigz tersedia di repositori resmi sistem operasi Linux populer.

Di Linux Arch dan variannya seperti Manjaro Linux, aktifkan [Komunitas] repositori dan instal Pigz menggunakan perintah:

$ sudo pacman -S pigz

Pada CentOS 8/7/6 :

$ sudo yum install pigz

Di Debian :

$ sudo apt-get install pigz

Di Fedora :

$ sudo dnf install pigz

Di Ubuntu , Linux Mint :

$ sudo add-apt-repository universe
$ sudo apt install pigz

Di openSUSE :

$ sudo zypper install pigz

Pada distribusi Linux lainnya, kompilasi dan instal dari sumber seperti yang ditunjukkan di bawah ini.

Pertama, pastikan Anda telah menginstal prasyarat berikut:

  • membuat
  • gcc
  • zlib-devel

Misalnya, pada sistem berbasis Debian Anda dapat menginstal paket-paket di atas menggunakan perintah:

$ sudo apt install make gcc zlib-devel

Pada sistem berbasis RPM:

$ sudo yum install make gcc zlib-devel

Kemudian unduh versi Pigz terbaru dari situs web resmi (Tautan diberikan di akhir):

$ wget https://zlib.net/pigz/pigz-2.4.tar.gz

Ekstrak file tar pigz:

$ tar -xzvf pigz-2.4.tar.gz

Perintah ini akan mengekstrak konten dalam folder bernama pigz-2.4 di direktori kerja saat ini.

CD ke direktori "pigz-2.4":

$ cd pigz-2.4

Kompilasi dan instal menggunakan perintah berikut:

$ make

Salin biner pigz ke $PATH Anda, misalnya /usr/local/bin :

$ sudo cp pigz /usr/local/bin/

Logout dan login kembali untuk mulai menggunakan pigz.

Kompres Dan Dekompresi File Secara Paralel Menggunakan Pigz

Pigz membagi input yang diberikan menjadi 128 KB potongan dan kompres masing-masing secara paralel. Format data terkompresi yang dihasilkan adalah dalam format gzip, zlib, atau zip entri tunggal menggunakan metode kompresi deflate. Secara default, ini mengompresi file gzip (.gz) format.

Mari saya tunjukkan beberapa contoh praktis. Untuk tujuan panduan ini, saya akan menggunakan archlinux.iso file (ukuran 677.4 MB ) untuk pengujian.

Kompres file

Untuk mengompresi file dengan opsi default, cukup jalankan:

pigz <path-to-file>

Contoh:

$ pigz archlinux.iso

Perintah di atas akan mengompres file yang diberikan yaitu archlinux.iso dan simpan sebagai archlinux.iso.gz di direktori kerja saat ini.

Harap dicatat bahwa perintah di atas akan menghapus file asli yaitu archlinux.iso setelah mengompresnya. Jika Anda tidak ingin menghapus file asli, gunakan -k (keep) untuk menginstruksikan Pigz untuk tidak menghapus file asli setelah memprosesnya.

$ pigz -k archlinux.iso

Mencantumkan isi file arsip

Untuk membuat daftar isi file arsip di atas, tanpa mengekstraknya, gunakan -l bendera.

$ pigz -l archlinux.iso.gz 
compressed   original reduced  name
 654901763  677380096    3.3%  archlinux.iso

Seperti yang Anda lihat pada output di atas, file input telah dikurangi sebesar 3,3% dari ukuran aslinya.

Tentukan metode kompresi

Pigz mendukung metode kompresi berikut:

  • Kompresi paling lambat dan terbaik (-9)
  • Kompresi tercepat dan lebih sedikit (-1)
  • Tidak ada kompresi (-0)
  • Kompresi default (-6)

Misalnya, untuk mengompresi file menggunakan metode kompresi terbaik (lambat), jalankan:

$ pigz -9 archlinux.iso

Kompres file dengan kompresi lebih sedikit (cepat):

$ pigz -1 archlinux.iso

Tanpa kompresi:

$ pigz -0 archlinux.iso

Ubah format kompresi

Secara default, ini menyimpan file output di gzip format. Namun, Anda dapat mengubahnya ke format lain.

Perintah berikut mengompresi file yang diberikan ke zlib (.zz) sebagai ganti format gzip:

$ pigz -k -z archlinux.iso

Di sini, kami menggunakan -k (huruf kecil) untuk menyimpan file asli setelah dikompres.

Demikian pula, untuk mengompres file dalam zip format, gunakan -K (huruf besar) bendera:

$ pigz -k -K archlinux.iso

Direktori Kompres

Pigz tidak memiliki opsi untuk mengompres folder secara langsung. Namun, kita dapat mencapainya dengan menggabungkan tar perintah dengan pigz seperti di bawah ini.

$ tar cf - Pictures/ | pigz > pictures.tar.gz

Perintah di atas akan memampatkan folder Pictures dan menyimpannya sebagai file pictures.tar.gz.

Sebagai salah satu pembaca kami Wazz katakan di bagian komentar di bawah, kita juga dapat menggunakan parameter 'use-compress-program' di dalam tar untuk menjalankan pigz alih-alih mengeluarkannya.

Contoh:

$ tar --use-compress-program=pigz -cf yourfile.tar.gz folder1 folder2

Batasi jumlah prosesor saat mengompresi

Seperti yang sudah saya katakan, Pigz mengeksploitasi banyak prosesor dan inti saat mengompresi file. Anda dapat mengubah perilaku ini menggunakan -p bendera.

Misalnya perintah berikut akan mengompres file menggunakan metode kompresi terbaik dan 4 prosesor dan menyimpan file asli:

$ pigz -9 -k -p4 archlinux.iso

Untuk mengetahui jumlah inti prosesor di Linux, lihat panduan berikut:

  • Cara Menemukan Jumlah Core CPU Dari Commandline Di Linux

Dekompresi file

Kami dapat mendekompresi file terkompresi ke bentuk aslinya menggunakan pigz -d atau unpigz perintah.

$ pigz -d archlinux.iso.gz

Atau,

$ unpigz archlinux.iso.gz

Untuk detail lebih lanjut, lihat bagian bantuan dan halaman manual:

$ pigz --help
$  man pigz

Gzip vs Pigz - Perbandingan kinerja

Saya menguji archlinux.iso (ukuran 677.4 MB ) file dengan utilitas Pigz Dan Gzip. Berikut adalah hasilnya:

Kompresi menggunakan Gzip:

$ time gzip archlinux.iso

real	0m35.086s
user	0m32.719s
sys	0m1.333s

Kompresi menggunakan Pigz:

$ time pigz archlinux.iso

real 0m12.545s
user 0m46.376s
sys 0m1.520s

Dekompresi dengan Gzip:

$ time gzip -d archlinux.iso.gz 

real	0m6.847s
user	0m5.621s
sys	0m0.783s

Dekompresi dengan Pigz:

$ time unpigz archlinux.iso.gz 

real	0m2.398s
user	0m2.370s
sys	0m1.931s

Seperti yang Anda lihat pada output di atas, Pigz dapat mengompresi dan mendekompresi satu file 677.4 MB dua kali lebih cepat dibandingkan dengan gzip.

Jadi, jika Anda memiliki sistem multi-prosesor, multi-inti modern, dan ingin mengompres file yang lebih besar secepat mungkin, dengan menggunakan semua inti CPU yang tersedia, pigz akan menjadi pilihan yang baik! Cobalah dan beri tahu kami pendapat Anda tentang utilitas kompresi Pigz di bagian komentar di bawah.

Bacaan terkait:

  • Cara Mengompresi Dan Mendekompresi File Di Linux
  • Cara Mengarsipkan File Dan Direktori Di Linux

Linux
  1. 16 Perintah Tar untuk Kompres dan Ekstrak File di Linux

  2. Perintah Tar di Linux ( Kompres dan Dekompresi file)

  3. Bagaimana Cara Mengompres dan Mengekstrak File Menggunakan Perintah tar di Linux?

  1. Cara Kompres Dan Dekompresi File Di Linux

  2. Cara Mengarsipkan dan Mengompresi File di Linux

  3. Cara Kompres dan Dekompresi file .bz2 di Linux Menggunakan Perintah bzip2

  1. Cara mengompres/dekompresi di Linux

  2. Linux Hapus File dan Direktori

  3. Semua Perintah Kompres/Dekompresi Linux