磁盘映像压缩下降

我用这个命令使用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 /分钟左右,但性能在一段时间后不会降低。 它或多或less地保持在600MB /分钟左右。

有什么我可以做的,保持使用压缩性能退化?

编辑:我用gzip和lzop,都受到性能下降。 我也尝试在Pentium D机器(2个核心,3 GB RAM)上备份相同的映像,以及Xen DomU(1个处理器,512 MB RAM)。 他们都有同样的问题。

我强烈build议使用中间的缓冲区命令来testing它,以允许压缩速度减慢或加速,而不会减慢备份本身。

我强烈build议bfr ,我自己在所有这些情况下使用它。

运行partclone.ntfs -c -s /dev/$mypartition | bfr | lzop -c > whatever.dat partclone.ntfs -c -s /dev/$mypartition | bfr | lzop -c > whatever.dat

在使用旧CPU的情况下,看起来很可能是CPU绑定的; 压缩会吃掉很多CPU(根据被压缩的数据不同而不同),这几乎肯定是问题的直接原因。

如果你能以某种方式使用更快的CPU进行压缩,也许可以先将数据传输到更快的机器上,那么这应该有所帮助。

您也可以尝试使用支持多内核的压缩实用程序,例如pbzip2 ,这会提高双核系统上的压缩率。 尽pipe如此,它在单CPU虚拟机上不会为你做任何事情。 pbzip2写入与bzip2兼容的文件,并且已经被打包用于大多数Linux发行版。

由于该过程是单线程的,压缩将成为CPU最高速度的瓶颈。

如果可以将其分解为几个并发部分,则可以通过使用更多的CPU核心来获得更多的速度,如果有多个核心(不是HT)的话。