このプロセスをスピードアップできますかgzip
?
私はそれを使用しています
mysqldump "$database_name" | gzip > $BACKUP_DIR/$database_name.sql.gz
データベースをディレクトリにバックアップします$BACKUP_DIR
。
マニュアルページには次のように記載されています。
-# --fast --best
指定された数値#を使用して圧縮速度を調整します。ここで、-1または--fastは最速の圧縮方法(低圧縮)を表し、-9または--bestは最も遅い圧縮方法(ほとんどの圧縮)を表します。 )最高の圧縮)。デフォルトの圧縮レベルは-6(速度を犠牲にして高い圧縮を好む)です。
- 使用するのがどれほど効果的ですか
--fast
? - これは、最新のコンピュータのCPU使用率を減らすのに効果的ですか?
私のテスト結果
スピードアップを感じませんでした。
- 7分47秒(基本尺度
-6
) - 8分36秒(比率
--fast
(=9))
それでは、高速圧縮で時間がかかると思いますか?
圧縮率が高いほど速度が遅くなります。
- 11分57秒(比率
--best
(= 1))
このアイデアを得た後、テストlzop
も試してみましたが、実際にスピードが速くなりました。
- 6分14秒
lzop -1 -f -o $BACKUP_DIR/$database_name.sql.lzo
答え1
マルチコアマシンを使用する場合豚豚既存のgzipよりはるかに高速です。
Pigzはgzipの並列実装を表し、データを圧縮するときにマルチプロセッサとマルチコアを最大限に活用するgzipのすべての機能を置き換えます。 PigzはMark Adlerによって書かれ、zlibとpthreadライブラリを使用しています。
Pigzはgzipのドロップイン代替品として使用できます。解凍は不可能で、圧縮のみを並列化できます。
Pigzコマンドラインを使用すると
mysqldump "$database_name" | pigz > $BACKUP_DIR/$database_name.sql.gz
答え2
から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).
答え3
データベースのロックの問題が速くなり、圧縮されていないデータを一時的に保持するのに十分な高速で大きなディスクがある場合は、次のアプローチを検討できます。
mysqldump "$database_name" > "$BACKUP_DIR"/"$database_name".sql
nice gzip "$BACKUP_DIR"/"$database_name".sql &
つまり、バックアップを最初に保存してから(ディスクが高速でCPUが遅い場合はgzipよりも高速です)、バックグラウンドでgzipを保存します。
(直接)圧縮にかかる時間はもはや重要ではなく、より良い圧縮アルゴリズムを使用することもできます。