gzip圧縮速度の向上

gzip圧縮速度の向上

このプロセスをスピードアップできますか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を保存します。

(直接)圧縮にかかる時間はもはや重要ではなく、より良い圧縮アルゴリズムを使用することもできます。

関連情報