Szukam najszybszego gzip
(lub zip) narzędzia. Mam wolumin LVM, który w 95% istnieje z próby ślepej 0
, więc kompresja jest bardzo łatwa. Szukam najszybszego rozwiązania i tak naprawdę nie dbam o kompresję, z wyjątkiem tych 0
.
Jestem świadomy gzip -1
(tak jak gzip --fast
), ale zastanawiałem się, czy jest jakaś szybsza metoda.
Dzięki.
Edit:
po kilku testach porównywałem gzip -1
, lzop -1
a pigz -1
granie i doszli do następujących wyników:
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
Edycja 2 :
Nie jest to trochę związane z moim początkowym pytaniem, jednak przy użyciu time dd if=/dev/VPS/snap | lzop -1 | ssh backup-server "dd of=/home/backupvps/snap.lzop"
(rozmiar bloku zmieniono na 16M) czas został skrócony do real 18m22.442s
!
źródło
time
w taki sposób jest nieco niesprawiedliwe . Przepustowość użytego ddpigz
jest niższa niż pozostałe dwa.Odpowiedzi:
Jeśli nie masz nic przeciwko odejściu od DEFLATE,
lzop
jest to implementacja LZO, która faworyzuje szybkość nad stopniem kompresji.źródło
lzop
najszybszy w moim scenariuszu. Jest szybszy niżpigz
jakoś (prawdopodobnie z powodu wielu zer).Chociaż osobiście jeszcze go nie używałem, myślę, że użycie równoległego gzip może nieco przyspieszyć:
źródło
Możesz wypróbować Parallel Gzip (połączony przez Pascal) lub Parallel BZIP.
Teoretycznie BZIP jest znacznie lepszy dla tekstu, więc możesz spróbować pbzip .
źródło
Twój dysk jest ograniczony do 30 MB / s
Wszystkie sprężarki działają wystarczająco dobrze. Możesz nawet zmniejszyć transfer sieciowy, używając nieco wolniejszego, ale wszechobecnego bzip2.
Czy rozważałeś rsync? Dokonuje sumy kontrolnej, a następnie zgłasza jedynie różnicę.
źródło
pigz -1: 1073741824 bytes (1.1 GB) copied, 8.6779 seconds, 124 MB/s
igzip -1: 1073741824 bytes (1.1 GB) copied, 11.6724 seconds, 92.0 MB/s
. Myślałem o rsync, ale sprawdziłoby to różnicę pliku i prawdopodobnie nie pomogłoby, ponieważ przez większość czasu wiele się zmieniło.Re: lzop jest wolniejszy w standardowej konfiguracji ... Poprawianie może być o połowę krótsze. Istnieje jednak jeszcze szybszy zamiennik o nazwie blosc:
https://github.com/FrancescAlted/blosc
Hmm ... Czas potrzebny na opublikowanie tego i otrzymanie odpowiedzi jest prawdopodobnie co najmniej dwukrotnie większy niż kiedykolwiek zaoszczędzony czas ... Teraz przepraszam, gdy rekompiluję jądro, aby zgolić kolejne .1s od czasu rozruchu 2s.
źródło