我正在使用 partclone 通过以下命令获取磁盘映像:
partclone.ntfs -c -s /dev/$mypartition | lzop -c > /my/nfs/share/mypartition.lzo
分区大小为 34.1 GB,已使用 33.8 GB。
问题是一段时间后性能会下降。起初备份的写入速度约为 300 MB/分钟,但性能逐渐下降到 150-200 MB/分钟。预计完成时间从约 1.25 小时增加到约 2.5 小时。
我拍摄了一张未经过压缩的图像:
partclone.ntfs -c -s /dev/$mypartition -o /my/nfs/share/mypartition
备份速度徘徊在 600 MB/分钟左右,但一段时间后性能不会下降。它或多或少保持在 600 MB/分钟左右。
在使用压缩时我可以做些什么来防止性能下降?
编辑:我使用过 gzip 和 lzop,它们的性能都下降了。我还尝试在 Pentium D 机器(2 核,3 GB RAM)和 Xen DomU(1 个处理器,512 MB RAM)上备份同一映像。它们都有同样的问题。
答案1
我强烈建议使用缓冲命令进行测试,以允许压缩速度减慢或加快,而不会减慢备份本身的速度。
我强烈推荐乙炔,我自己在所有这样的情况中都会使用它。
赶紧跑partclone.ntfs -c -s /dev/$mypartition | bfr | lzop -c > whatever.dat
答案2
对于您使用的旧 CPU,很可能是 CPU 受限;压缩会占用大量 CPU(并且根据被压缩的数据而有所不同),这几乎肯定是导致问题的直接原因。
如果您可以以某种方式使用更快的 CPU 进行压缩,也许通过先将数据传输到更快的机器,那么这应该会有所帮助。
您还可以尝试使用支持多核的压缩实用程序,例如压缩包,这至少应该能提高双核系统的压缩率。不过,在单 CPU VM 上它不会为您做任何事情。pbzip2 写入与 bzip2 兼容的文件,并且已经为大多数 Linux 发行版打包。
答案3
由于该过程是单线程的,压缩将成为 CPU 最大速度的瓶颈。
如果您可以将其分解成几个并发部分,那么如果您有多个内核(非 HT),那么您可以通过使用更多的 CPU 内核来获得更快的速度。