目前,我正在运行tar czf
合并备份文件。这些文件位于特定目录中。
但是文件数量正在增长。使用tzr czf
会花费太多时间(超过20分钟并且还在计数)。
我需要以可伸缩的方式更快地合并文件。
我发现genisoimage
,readom
和mkisofs
。但是我不知道哪一个最快,以及每个限制有哪些。
目前,我正在运行tar czf
合并备份文件。这些文件位于特定目录中。
但是文件数量正在增长。使用tzr czf
会花费太多时间(超过20分钟并且还在计数)。
我需要以可伸缩的方式更快地合并文件。
我发现genisoimage
,readom
和mkisofs
。但是我不知道哪一个最快,以及每个限制有哪些。
Answers:
您应该检查是否大部分时间都花在CPU或I / O上。无论哪种方式,都有一些方法可以改善它:
A:不要压缩
您在需求列表中没有提到“压缩”,因此请尝试从参数列表中删除“ z” tar cf
。这可能会加快速度。
还有其他一些技术可以加快此过程,例如使用“ -N”跳过之前已经备份的文件。
B:用dd备份整个分区
或者,如果您要备份整个分区,请改为复制整个磁盘映像。这将节省处理时间,并节省大量磁盘头查找时间。tar
以及其他任何在更高级别上运行的程序都具有读取和处理目录项和索引节点以查找文件内容在何处以及进行更多磁头磁盘查找的开销,这需要从磁盘的不同位置读取每个文件。
要更快地备份基础数据,请使用:
dd bs=16M if=/dev/sda1 of=/another/filesystem
(这假设您未使用RAID,这可能会有所改变)
pigz
如果系统中存在多个处理器,请使用。
将tar与lz4压缩一起使用,例如
tar cvf - myFolder | lz4 > myFolder.tar.lz4
为您提供两全其美的体验(压缩和速度都不错)。即使您的数据包含二进制文件,压缩率也应约为3。
进一步阅读: 压缩算法比较 如何使用lz4进行tar
tar
任何重大开销,在这里读取文件是昂贵的操作。您应该修改文件的存储方式,或者使用完全不同的方法(将文件系统整体复制)。如果您不知道文件的组织方式,我们将为您提供很多帮助。