Jika Anda pernah mengompres volume besar dengan tar , Anda akan tahu betapa sakitnya hal itu. Ini sering berjalan sangat lambat, dan Anda mendapati diri Anda menekan Ctrl + C untuk mengakhiri tugas dan melupakannya. Namun, ada beberapa alat lain yang dapat digunakan tar, dan itu adalah cara yang bagus untuk memanfaatkan CPU multi-threaded saat ini dan mempercepat pengarsipan tar Anda. Artikel ini menunjukkan cara membuat tar menggunakan semua inti saat mengompresi arsip di Linux.
Memahami dan Memasang Alat
Tiga alat utama yang dimaksud di sini adalah pigz, pbzip2, dan pxz. Ada beberapa perbedaan halus di antara alat-alat tersebut, tetapi perbedaannya ada di antara gzip, bzip2, dan xz. Dalam urutan tersebut, tingkat kompresi meningkat, artinya arsip yang dikompresi dengan gzip akan lebih besar dari yang dikompresi dengan xz, tetapi gzip secara alami akan memakan waktu lebih sedikit daripada xz. bzip2 ada di suatu tempat di tengah.
Huruf “p†yang mengawali nama masing-masing alat berarti “paralelâ€. Paralelisasi adalah sesuatu yang menjadi semakin relevan selama bertahun-tahun – seberapa baik sesuatu menjangkau semua inti CPU. Dengan CPU seperti lini Epyc dan Threadripper AMD yang dapat mencapai 64 inti dan 128 utas, penting untuk memahami aplikasi apa yang dapat memanfaatkannya. Fungsi kompresi ini adalah kandidat utama.
Untuk menginstal alat, Anda cukup membuka repo Anda.
sudo tepat Install pigz pbzip2 pxz # Debian/Ubuntu sudo dnf Install pigz pbzip2 pxz # Fedora sudo pacman -Sy pigz pbzip2 pxz # Arch Linux
Artikel ini berfokus pada pxz demi konsistensi. Anda dapat GB
Dan, seperti yang Anda lihat, butuh waktu sangat lama bagi i7-2600 saya yang sudah tua untuk mengompres Linux 5.10-rc3 (sekitar 28 menit).
Di sinilah alat kompresi paralel ini berguna. Jika Anda mengompresi file besar dan ingin menyelesaikannya lebih cepat, saya sangat merekomendasikan alat ini.
Menggunakan Alat Kompresi Paralel dengan Tar
Anda dapat memberi tahu tar untuk menggunakan program kompresi dengan opsi –use-compression-program , atau Anda dapat menggunakan flag perintah -I yang sedikit lebih sederhana . Contoh sintaks untuk salah satu alat ini akan seperti ini:
ter -SAYA pigz -cf linux- 5.10 -rc3.tar.gz linux / ter -SAYA pbzip2 -cf linux- 5.10 -rc3.tar.bz2 linux / ter -Saya pxz -cf linux- 5.10 -rc3.tar.xz linux /
Mari kita uji dan lihat berapa lama waktu yang dibutuhkan sistem saya untuk mengompresi Kernel Linux dengan akses ke delapan thread CPU saya. Anda dapat melihat pembacaan htop saya yang menampilkan semua utas yang disematkan pada penggunaan 100 persen karena pxz.
Anda dapat melihat bahwa dibutuhkan waktu yang jauh lebih sedikit untuk mengompresi arsip tersebut (sekitar tujuh menit!), dan itu dilakukan dengan multitasking. Saya memiliki mesin virtual yang berjalan di latar belakang, dan saya sedang melakukan penjelajahan web saat ini. Penjadwal perangkat keras Kernel Linux akan memberi Anda apa yang Anda butuhkan untuk barang-barang pribadi Anda, jadi jika Anda membiarkan perintah pxz Anda berjalan tanpa ada hal lain yang berjalan di sistem Anda, Anda mungkin bisa menyelesaikannya lebih cepat.
Menyesuaikan Level Kompresi dengan pigz, pbzip2, dan pxz
Anda juga dapat meneruskan tingkat kompresi ke pxz untuk membuat file menjadi lebih kecil. Ini akan membutuhkan lebih banyak RAM, CPU, dan waktu, tetapi itu sepadan jika Anda benar-benar membutuhkan file kecil. Berikut perbandingan kedua perintah dan hasilnya secara berdampingan.
Kompresinya tidak jauh lebih besar, dan waktunya tidak sepadan, tetapi jika setiap megabyte diperhitungkan, itu masih merupakan pilihan yang bagus.
Saya harap Anda menikmati panduan ini untuk menggunakan semua inti untuk mengompresi arsip menggunakan tar. Pastikan untuk memeriksa beberapa konten Linux kami yang lain, seperti cara membuat PC baru untuk Linux, menguasai Apt dan menjadi guru Apt, dan cara memasang Arch Linux di Raspberry Pi.