.Tar.gz: 压缩和解压的时间有关系吗?

.Tar.gz: 压缩和解压的时间有关系吗?

我正在将 mongodb 的备份(约 500GB)压缩成 .tar.gz 存档,这需要几个小时的时间。为了进行测试,我尝试将该数据库备份到不同的机器上,我想估算一下每台机器需要多长时间。

我的问题是,根据压缩所花的时间来估算解压缩档案所需的时间有什么方法吗?

谢谢

答案1

我不知道压缩和解压的标准比率,因为这实际上取决于您的数据和服务器资源。假设所有其他资源都相同,解压通常更快,因为涉及的计算工作较少。您的最坏情况估计可能与初始压缩时间相同。

然而,为了轻松获胜,我建议使用pigzgzip,这是一种利用多个处理器和内核的并行实现。除非您只有一个内核可用,否则pigz应该可以大大减少压缩和解压缩的时间。

使用示例tar

tar -c --use-compress-program=pigz -f data.tgz /path/to/data

有关更多示例,请参阅StackOverflow:利用多核进行 tar+gzip/bzip 压缩/解压缩

答案2

同一台机器上没有确定的比例,使用多台机器(不同类型的机器)肯定会产生影响。压缩和解压缩会积极涉及数据存储(例如“硬盘”或“SSD”)、处理器和其他组件(如内存)。

概括地说,解压速度非常快,甚至可能比复制未压缩的数据量更快。压缩也可以同样快,对于 RLE 压缩之类的压缩来说可能就是这样。对于 zip 和 gzip,常见的实现比解压慢,如果您选择更激进的压缩选项(可能需要 2-4 倍的时间),您通常可以再挤出 5%-15% 的压缩效率。

差异很大程度上是因为压缩涉及一些测试(有时被认为是“猜测”),而有些测试毫无结果。相比之下,减压通常只是遵循预先设定的过程,因此相对较快。

相关内容