我正在使用(尝试)gzip 以 rsyncable 方式压缩 SQL 文件,以便以最小的延迟传输备份。
然而,这似乎不起作用,因为加速比始终是 1.00。
.sql
通过将数据库转储到文件然后发出来创建档案gzip -f3 --rsyncable file.sql
。
接下来,远程机器使用以下标志对上次备份执行 rsync:
rsync -avhhiP --inplace
为什么我的加速比可能是 1.00?我是不是应该每次都重新创建存档,而是更新它?我没有看到在线指南中关于 --rsyncable 标志用法的提及。
我在用:
# gzip -V
gzip 1.5
答案1
这个问题已经有些老了,但也许我的回答仍然对其中一个有帮助:
Debian Wheezy 在 gzip 中存在上述错误,导致--rsyncable
-flag 不起作用。
您可以使用pigz
作为替代方案,这是一种gzip
使用多个 CPU 的并行化替代方案,如果您手动指定更大的块大小,则可以更有效地压缩,并且官方提供了一种--rsyncable
应该比补丁提供的更好的实现gzip
。
此外,rsync
s--inplace
参数降低了 delta-transmission 算法的效率 - 引用手册页:
如果目标文件中的某些数据在复制到文件后面的位置之前被覆盖,则 rsync 增量传输算法的效率可能会降低。如果您使用 ,则不会出现这种情况
--backup
,因为 rsync 足够智能,可以使用备份文件作为传输的基础文件。
答案2
我花了很长时间试图弄清楚为什么--rsyncable
它在 Ubuntu 12.04 和 gzip 1.4 上无法工作,然后才偶然发现这一点:https://bugs.launchpad.net/ubuntu/+source/gzip/+bug/1021975
看来 1.4 ubuntu 软件包中存在回归问题,这意味着 rsyncable 补丁未正确包含在发行版中,尽管它已在 中列出gzip --help
。我不确定它是否会影响其他发行版或 Ubuntu 版本。