Anda dapat mengubah kecepatan gzip menggunakan --fast
--best
atau -#
di mana # adalah angka antara 1 dan 9 (1 tercepat tetapi lebih sedikit kompresi, 9 lebih lambat tetapi lebih banyak kompresi). Secara default gzipruns di level 6.
Alasan mengapa tar membutuhkan waktu yang sangat sedikit dibandingkan dengan gzip adalah karena hanya ada sedikit overhead komputasional dalam menyalin file Anda ke dalam satu file (yang dilakukannya). gzip di sisi lain, sebenarnya menggunakan algoritme kompresi untuk mengecilkan file tar.
Masalahnya adalah gzip dibatasi (seperti yang Anda temukan) ke satu utas.
Masukkan pigz, yang dapat menggunakan banyak utas untuk melakukan kompresi. Contoh cara menggunakan ini adalah:
tar -c --use-compress-program=pigz -f tar.file dir_to_zip
Ada ringkasan singkat yang bagus tentang opsi --use-compress-program di situs sejenis.
Sepertinya saya menggunakan satu CPU sekitar 100%.
Itu menyiratkan tidak ada masalah kinerja I/O tetapi kompresi hanya menggunakan satu utas (yang akan menjadi kasus dengan gzip).
Jika Anda berhasil mencapai akses/kesepakatan yang diperlukan untuk menginstal alat lain, maka 7zip juga mendukung banyak utas untuk memanfaatkan CPU multi-core, meskipun saya tidak yakin apakah itu meluas ke format gzip dan juga formatnya sendiri.
Jika Anda terjebak untuk menggunakan hanya gzip untuk saat ini dan memiliki banyak file untuk dikompres, Anda dapat mencoba mengompresnya satu per satu - dengan cara itu Anda akan menggunakan lebih banyak CPU multi-core dengan menjalankan lebih dari satu proses secara paralel. Berhati-hatilah untuk tidak berlebihan karena segera setelah Anda mendekati kapasitas kinerja subsistem I/O Anda akan turun drastis (menjadi lebih rendah daripada jika Anda menggunakan satu proses/utas) karena latensi pergerakan kepala menjadi signifikan. hambatan.