Gzip 解压缩需要多长时间?

Gzip 解压缩需要多长时间?

我想备份我托管的整个服务器。所以我使用 dd 和 gzip 来缩小文件大小。磁盘有 500GB,但使用量不到 5%。我设法dd在 8 小时内将整个分区压缩成一个 200 GB 的 gzip 文件,通过互联网传到我家。现在我正尝试将文件解压到新磁盘上的分区中。这已经花了 8 个多小时,当然我无法确定进度。

  1. 相对于压缩,解压缩需要多长时间?
  2. 我认为本地处理器是决定需要多长时间的关键因素?(而不是网络带宽)
  3. 有没有办法看到进展?

下次我能用更好的方法做得更好吗?

答案1

下面是我看到的一篇文章,其中有一些关于 gzip 和一些其他压缩算法的基准测试:http://tukaani.org/lzma/benchmarks.html。我认为解压时间会随 CPU 速度而变化。另外,如果你查看测试,似乎解压几乎总是比压缩快。

编辑:

在回答您关于备份服务器的其他方法的最新问题时,我发现了这篇讨论各种备份方法的文章:http://www.techrepublic.com/blog/10things/10-outstanding-linux-backup-utilities/895。我不确定您对服务器有什么访问权限,但如果它是一个常见的商业主机,您也许可以向技术支持询问应该如何操作。

答案2

您不会想dd这样(滥用)使用。复制 95% 未使用的磁盘会浪费时间,如果您当时以读/写方式安装它,您将获得损坏的映像。如果您想备份系统,最好确保关闭所有可能写入磁盘的服务,然后使用tar

答案3

查看正在运行的 gzip 进程的进度的最简单方法是查看写入文件的文件大小,watch如果您想要实时更新,则可能需要结合使用。如果您正在处理分区,这当然不太容易实现。

估计进度的另一种方法是使用iotopiotop它将向您显示系统上每个进程将数据写入磁盘的速度,您的gzip进程可能会显示在顶部并为您提供每秒处理的数据量。然后只需将 MB/秒乘以进程运行的时间(参见ps auxwSTART 列),您就会大致知道需要多长时间。

至于进一步的备份运行:rsync当您想要将数据从网络上的一台计算机复制到另一台计算机时使用。rsync处理压缩和增量,因此您只需传输尚未拥有的数据,这使得定期更新非常快。rsync 还具有--backup--backup-dir选项,可用于创建不仅仅是副本,还可以创建跟踪已删除文件的适当备份。

执行磁盘映像时,磁盘映像partimage是 的一个很好的替代方案dd,因为它与 不同,dd partimage它具有文件系统感知能力,并且只会复制文件系统实际使用的块,而不是空的未使用块,因此它能够在大多数空的文件系统上创建小得多的磁盘映像。但它也不是一个好的网络备份工具,请改用rsync

答案4

通常,使用 gzip 解压应该比压缩快。我怀疑这里的问题是目标磁盘比压缩磁盘慢:或者也许您正在读取和写入同一个物理磁盘,这导致了大量寻道。

其他答案是正确的,通常最好备份文件,而不是原始设备。

为了查看进度,我将安装pv然后这样说:

zcat /tmp/myimg.gz |pv -s500G > /tmp/myimg

相关内容