这几天在做一个优化,对一些大的文件做传输处理,本来我们系统里只用到了tar 传输,但是没有启用-z参数对文件进行压缩,所以特别耗时耗空间。考虑到文件特别大,在选择命令和压缩比的时候我也做了一些对比。(这里只做gzip压缩)
首先,我们知道tar里面有一个-z选项,是指启动gzip选项,将文件打包压缩之后传输。我的理解是 :tar启用-z 就相当于tar(without -z) + gzip命令。
那在时间和压缩后文件大小方面这两种又有多大的差异呢?
如图:
可以看到 选择用tar并启用-z参数时, 压缩时间是4.176s 压缩之后的文件大小是 177,464,94k
而选择tar(without -z)+gzip时候,压缩的时间是2.264+4.174=6.438s 压缩之后文件的大小是177,465,12k
由此看出,用tar+-z的效率远远好于tar(without -z)+ gzip。
除此之外, 在压缩的时候我们可以设置压缩比率,如果设置高的压缩比 那么要牺牲更长的时间来做压缩 但占用了更小的空间;反之,如果取较小的压缩比 压缩速度就快 而又占用了更大的空间。所以选择压缩比率是影响时间和空间最关键的一点。
可如图设置压缩比率:
经过实验对比,选择GZIP压缩比率为6的时候压缩效率最好:
源文件大小是329123840,不同的压缩比率压缩结果如下表以及下图:
压缩比 命令耗时 压缩后文件大小
3 2.992s 24404959
6 4.185s 17746494
9 8.993s 16616238
由此可以得出,在选择对文件打包压缩传输时,tar+-z并且压缩比取6时效果更佳。