É possível acelerar o gzip
processo?
estou a usar
mysqldump "$database_name" | gzip > $BACKUP_DIR/$database_name.sql.gz
fazer backup de um banco de dados em um diretório $BACKUP_DIR
,.
a página de manual diz:
- # --fast --best
Regula a velocidade da compactação usando o dígito especificado #, em que -1 ou --fast indica o método de compactação mais rápido (menos compactação) e -9 ou --best indica o método de compactação mais lento ( melhor compressão). O nível de compactação padrão é -6 (ou seja, inclinado para alta compactação em detrimento da velocidade).
- Quão eficaz seria usar
--fast
? - Isso está reduzindo efetivamente o uso da CPU em um computador moderno?
Meus resultados de teste
Não notei nenhuma aceleração:
- 7 min, 47 segundos (com proporção padrão
-6
) - 8 min, 36 segundos (com proporção
--fast
(= 9))
Então parece que leva mais tempo para usar a compactação rápida?
Somente uma compressão mais alta realmente diminui a velocidade:
- 11 min, 57 segundos (com proporção
--best
(= 1))
Depois de adquirir a idéia lzop
, testei isso também e é realmente mais rápido:
- 6 min, 14 segundos com
lzop -1 -f -o $BACKUP_DIR/$database_name.sql.lzo
backup
compression
gzip
rubo77
fonte
fonte
gzip -1
não for rápido o suficiente, use #lzop
lz4
que é ainda mais rápido ver este benchmark . Mas parece que lzop e lz4 precisam de muito mais memória. será um problema no meu núcleo único de 1 GB de RAM que o lz4 use 30 vezes mais memória na compactação do que o gzip quando compactar alguns bancos de dados grandes?Respostas:
Se você possui uma máquina com vários núcleos, o pigz é muito mais rápido que o gzip tradicional.
Pigz ca pode ser usado como um substituto para o gzip. Observe que apenas a compactação pode ser paralelizada, não a descompactação.
Usando pigz, a linha de comando se torna
fonte
pigz
aumenta o uso da CPU, mas diminui o tempo de clock que leva em multiprocessadoresDe
man gzip
:fonte
Se você precisar ser rápido devido a problemas de bloqueio de banco de dados e tiver um disco rápido / grande o suficiente para reter os dados descompactados temporariamente, considere usar esse método:
Ou seja, armazene o backup primeiro (que é mais rápido que compactá-lo se o disco for rápido e a CPU estiver lenta) e, em seguida, faça com que o gzip ocorra em segundo plano.
Isso também pode permitir que você use um algoritmo de compactação melhor, pois não importa mais (diretamente) quanto tempo a compactação leva.
fonte