rub*_*o77 15 backup compression gzip
有没有可能加快这个gzip过程?
我正在使用
mysqldump "$database_name" | gzip > $BACKUP_DIR/$database_name.sql.gz
Run Code Online (Sandbox Code Playgroud)
将数据库备份到目录中,$BACKUP_DIR.
手册页说:
-# --fast --best
使用指定的数字#调节压缩速度,其中-1还是--fast indi?cates 最快的压缩方法(较少压缩),-9 或 --best 表示最慢的压缩方法(最佳压缩)。默认压缩级别为 -6(即以牺牲速度为代价偏向于高压缩)。
--fast?我没有注意到任何加速:
-6)--fast(= 9))那么使用快速压缩似乎需要更长的时间?
只有更高的压缩才能真正减慢它的速度:
--best( = 1 ))在获得想法后,lzop我也进行了测试,它确实更快:
lzop -1 -f -o $BACKUP_DIR/$database_name.sql.lzoMar*_*rco 21
如果你有一台多核机器,使用pigz比传统的 gzip 快得多。
pigz 代表 gzip 的并行实现,是 gzip 的全功能替代品,它在压缩数据时充分利用了多个处理器和多个内核。pigz 由 Mark Adler 编写,使用 zlib 和 pthread 库。
Pigz 可以用作 gzip 的直接替代品。请注意,只能并行化压缩,而不能并行化解压缩。
使用 pigz 命令行变为
mysqldump "$database_name" | pigz > $BACKUP_DIR/$database_name.sql.gz
Run Code Online (Sandbox Code Playgroud)
来自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).
Run Code Online (Sandbox Code Playgroud)
如果由于数据库锁定问题而需要快速,并且您有足够快/足够大的磁盘来临时保存未压缩的数据,则可以考虑使用此方法:
mysqldump "$database_name" > "$BACKUP_DIR"/"$database_name".sql
nice gzip "$BACKUP_DIR"/"$database_name".sql &
Run Code Online (Sandbox Code Playgroud)
即首先存储备份(如果磁盘很快而 CPU 很慢,这比 gzip 更快),然后在后台进行 gzip 。
这也可能允许您使用更好的压缩算法,因为(直接)压缩需要多长时间不再重要。