Czy można przyspieszyć gzip
proces?
używam
mysqldump "$database_name" | gzip > $BACKUP_DIR/$database_name.sql.gz
do tworzenia kopii zapasowych bazy danych do katalogu $BACKUP_DIR
.
strona mówi:
- # - fast --best Ustaw
prędkość kompresji za pomocą określonej cyfry #, gdzie -1 lub --fast wskazuje najszybszą metodę kompresji (mniejszą kompresję), a -9 lub --best wskazuje najwolniejszą metodę kompresji ( najlepsza kompresja). Domyślny poziom kompresji to -6 (tzn. Nastawiony na wysoką kompresję kosztem prędkości).
- Jak efektywne byłoby użycie
--fast
? - Czy to skutecznie obniża zużycie procesora na nowoczesnym komputerze?
Moje wyniki testu
Nie zauważyłem żadnego przyspieszenia:
- 7 min, 47 sekund (z domyślnym współczynnikiem
-6
) - 8 min, 36 sekund (ze współczynnikiem
--fast
(= 9))
Więc wydaje się, że użycie szybkiej kompresji zajmuje jeszcze więcej czasu?
Tylko wyższa kompresja naprawdę go spowalnia:
- 11 min, 57 sekund (ze współczynnikiem
--best
(= 1))
Po otrzymaniu Pomysłu lzop
przetestowałem to i jest to naprawdę szybsze:
- 6 min, 14 sekund z
lzop -1 -f -o $BACKUP_DIR/$database_name.sql.lzo
backup
compression
gzip
rubo77
źródło
źródło
gzip -1
nie jest wystarczająco szybki, użyjlzop
lz4
który jest jeszcze szybszy zobacz ten punkt odniesienia . Ale wydaje się, że lzop i lz4 potrzebują znacznie więcej pamięci. czy będzie problem na mojej 1-rdzeniowej pamięci RAM, że lz4 używa 30 razy więcej pamięci podczas kompresji niż gzip, gdy kompresuję niektóre duże bazy danych?Odpowiedzi:
Jeśli masz maszynę wielordzeniową, używając Pigz jest znacznie szybszy niż tradycyjny gzip.
Pigz może być używany jako drop-in zamiennik gzip. Uwaga: można sparaliżować tylko kompresję, a nie dekompresję.
Za pomocą pigz staje się wierszem poleceń
źródło
pigz
zwiększa użycie procesora, ale zmniejsza czas potrzebny na procesory wieloprocesoroweOd
man gzip
:źródło
Jeśli potrzebujesz, aby był szybki z powodu problemów z blokowaniem bazy danych, a masz wystarczająco szybki / duży dysk do tymczasowego przechowywania danych nieskompresowanych, możesz zamiast tego rozważyć użycie tej metody:
Najpierw przechowuj kopię zapasową (co jest szybsze niż gzipowanie JEŻELI dysk jest szybki, a procesor jest wolny), a następnie niech zgrywanie odbywa się w tle.
Może to również pozwolić na użycie lepszego algorytmu kompresji, ponieważ nie ma już znaczenia (bezpośrednio) czas kompresji.
źródło