gzip
プロセスを高速化することは可能ですか?
私は使っています
mysqldump "$database_name" | gzip > $BACKUP_DIR/$database_name.sql.gz
データベースをディレクトリ$BACKUP_DIR
にバックアップします。
マンページは言う:
-#--fast --best
指定した数字#を使用して圧縮速度を調整します。ここで、-1または--fastは最も速い圧縮方法(圧縮率が低い)を示し、-9または--bestは最も遅い圧縮方法(最適な圧縮率)を示します。 。デフォルトの圧縮レベルは-6です(つまり、速度を犠牲にして高圧縮に偏っています)。
--fast
を使用するとどのくらい効果的ですか?私は加速に気づきませんでした:
-6
)--fast
(= 9))では、高速圧縮を使用するにはさらに時間がかかるようです。
より高い圧縮のみが本当に遅くなります:
--best
(= 1))lzop
でアイデアを得た後、私もそれをテストしました。
lzop -1 -f -o $BACKUP_DIR/$database_name.sql.lzo
で6分14秒pigz を使用するマルチコアマシンの場合、従来のgzipよりもはるかに高速です。
gzipの並列実装を表すpigzは、データを圧縮するときに複数のプロセッサと複数のコアを活用してgzipを完全に機能的に置き換えるものです。 pigzはMark Adlerによって作成され、zlibおよびpthreadライブラリを使用しています。
Pigzはgzipのドロップイン代替として使用できます。並列化できるのは圧縮のみであり、解凍はできないことに注意してください。
Pigzを使用すると、コマンドラインは次のようになります。
mysqldump "$database_name" | pigz > $BACKUP_DIR/$database_name.sql.gz
man gzip
:
-# --fast --best
Regulate the speed of compression using the
specified digit #, where -1 or --fast indi‐
cates the fastest compression method (less
compression) and -9 or --best indicates the
slowest compression method (best compression).
The default compression level is -6 (that is,
biased towards high compression at expense of
speed).
データベースのロック問題のために高速にする必要があり、データを一時的に解凍するために十分な高速/大容量のディスクがある場合は、代わりにこの方法を使用することを検討できます。
mysqldump "$database_name" > "$BACKUP_DIR"/"$database_name".sql
Nice gzip "$BACKUP_DIR"/"$database_name".sql &
つまり最初にバックアップを保存し(ディスクが高速でCPUが遅い場合はgzip圧縮よりも高速です)、次にgzip圧縮をバックグラウンドで実行します。
これにより、圧縮にかかる時間は(直接)重要ではなくなるため、より優れた圧縮アルゴリズムを使用できる場合もあります。