Saya mencari gzip
utilitas tercepat (atau zip). Saya memiliki volume LVM yang 95% ada dari kosong 0
, jadi mengompresi itu sangat mudah. Saya mencari solusi paling cepat, dan tidak terlalu peduli dengan kompresi kecuali 0
.
Saya menyadari gzip -1
(sama seperti gzip --fast
) tetapi bertanya-tanya apakah ada metode yang lebih cepat.
Terima kasih.
Sunting:
setelah beberapa tes, saya membandingkan gzip -1
, lzop -1
dan pigz -1
dengan satu sama lain dan sampai pada hasil berikut:
PIGZ:
time dd if=/dev/VPS/snap | pigz -1 | ssh backup-server "dd of=/home/backupvps/snap.pigz"
104857600+0 records in
104857600+0 records out
53687091200 bytes (54 GB) copied, 2086.87 seconds, 25.7 MB/s
7093985+266013 records in
7163950+1 records out
3667942715 bytes (3.7 GB) copied, 2085.75 seconds, 1.8 MB/s
real 34m47.147s
LZOP:
time dd if=/dev/VPS/snap | lzop -1 | ssh backup-server "dd of=/home/backupvps/snap.lzop"
104857600+0 records in
104857600+0 records out
53687091200 bytes (54 GB) copied, 1829.31 seconds, 29.3 MB/s
7914243+311979 records in
7937728+1 records out
4064117245 bytes (4.1 GB) copied, 1828.08 seconds, 2.2 MB/s
real 30m29.430s
GZIP:
time dd if=/dev/VPS/snap | gzip -1 | ssh backup-server "dd of=/home/backupvps/snap_gzip.img.gz
104857600+0 records in
104857600+0 records out
53687091200 bytes (54 GB) copied, 1843.61 seconds, 29.1 MB/s
7176193+42 records in
7176214+1 records out
3674221747 bytes (3.7 GB) copied, 1842.09 seconds, 2.0 MB/s
real 30m43.846s
Edit 2 :
Ini agak tidak berhubungan dengan pertanyaan awal saya, namun menggunakan time dd if=/dev/VPS/snap | lzop -1 | ssh backup-server "dd of=/home/backupvps/snap.lzop"
(ukuran blok diubah menjadi 16M) waktunya dikurangi menjadi real 18m22.442s
!
sumber
time
dengan cara seperti itu. Throughput dari dd yang digunakanpigz
lebih rendah dari dua lainnya.Jawaban:
Jika Anda tidak keberatan menjauh dari DEFLATE,
lzop
adalah implementasi LZO yang mendukung kecepatan daripada rasio kompresi.sumber
lzop
yang tercepat dalam skenario saya. Ini lebih cepat daripadapigz
entah bagaimana (mungkin karena lot dari 0).Meskipun saya pribadi belum menggunakannya, saya pikir menggunakan paralel gzip dapat mempercepat beberapa hal:
sumber
Anda dapat mencoba Parallel Gzip (Pascal ditautkan dalam), atau BZIP Paralel.
Secara teori, BZIP jauh lebih baik untuk teks, jadi Anda mungkin ingin mencoba pbzip .
sumber
Disk Anda terbatas pada 30MB / s
Semua kompresor bekerja dengan cukup baik. Anda bahkan dapat mengurangi transfer jaringan menggunakan bzip2 yang sedikit lebih lambat tetapi ada di mana-mana.
Sudahkah Anda mempertimbangkan rsync? Itu checksumming dan kemudian gzipping perbedaannya saja.
sumber
pigz -1: 1073741824 bytes (1.1 GB) copied, 8.6779 seconds, 124 MB/s
dangzip -1: 1073741824 bytes (1.1 GB) copied, 11.6724 seconds, 92.0 MB/s
. Saya sudah memikirkan rsync tetapi itu akan memeriksa file berbeda dan mungkin tidak akan membantu, karena sebagian besar waktu banyak yang berubah.Re: lzop itu lebih lambat di konfigurasi std ... Tweaking dapat separuh waktu. Tetapi ada pengganti yang lebih cepat yang disebut blosc:
https://github.com/FrancescAlted/blosc
Hmm ... Waktu yang diperlukan untuk mengirim ini dan mendapatkan balasan mungkin setidaknya dua kali lipat dari penghematan waktu yang akan Anda dapatkan ... Sekarang permisi sementara saya mengkompilasi ulang kernel saya untuk mencukur .1s dari waktu boot 2s saya.
sumber