我正在寻找最快的gzip
(或 zip)实用程序。我有一个 LVM 卷,其中 95% 都是空白的0
,因此压缩它非常容易。我正在寻找最快的解决方案,除了 之外,我并不真正关心压缩0
。
我知道gzip -1
(与相同gzip --fast
)但想知道是否有更快的方法。
谢谢。
编辑:
经过一些测试,我将gzip -1
、lzop -1
和pigz -1
相互比较,得出以下结果:
猪:
time dd if=/dev/VPS/snap | pigz -1 | ssh backup-server "dd of=/home/backupvps/snap.pigz"
104857600+0 records in
104857600+0 records out
53687091200 bytes (54 GB) copied, 2086.87 seconds, 25.7 MB/s
7093985+266013 records in
7163950+1 records out
3667942715 bytes (3.7 GB) copied, 2085.75 seconds, 1.8 MB/s
real 34m47.147s
左心室收缩功能:
time dd if=/dev/VPS/snap | lzop -1 | ssh backup-server "dd of=/home/backupvps/snap.lzop"
104857600+0 records in
104857600+0 records out
53687091200 bytes (54 GB) copied, 1829.31 seconds, 29.3 MB/s
7914243+311979 records in
7937728+1 records out
4064117245 bytes (4.1 GB) copied, 1828.08 seconds, 2.2 MB/s
real 30m29.430s
GZIP压缩:
time dd if=/dev/VPS/snap | gzip -1 | ssh backup-server "dd of=/home/backupvps/snap_gzip.img.gz
104857600+0 records in
104857600+0 records out
53687091200 bytes (54 GB) copied, 1843.61 seconds, 29.1 MB/s
7176193+42 records in
7176214+1 records out
3674221747 bytes (3.7 GB) copied, 1842.09 seconds, 2.0 MB/s
real 30m43.846s
编辑2:
这和我最初的问题有点不相关,但是使用time dd if=/dev/VPS/snap | lzop -1 | ssh backup-server "dd of=/home/backupvps/snap.lzop"
(块大小改为 16M)时间减少到real 18m22.442s
!
答案1
如果您不介意放弃 DEFLATE,lzop
它是 LZO 的一种实现,更注重速度而不是压缩比。
答案2
虽然我个人还没有使用过它,但我认为使用并行 gzip可以加快一点速度:
pigz 是 gzip 的并行实现的缩写,它是 gzip 的功能齐全的替代品,在压缩数据时充分利用了多个处理器和多个核心。
答案3
您可以尝试 Parallel Gzip(Pascal 链接了它)或 Parallel BZIP。
理论上,BZIP 更适合文本,因此您可能想尝试压缩包。
答案4
回复:lzop 在标准配置下速度较慢...调整一下可以节省一半的时间。但有一个更快的替代品叫做 blosc:
https://github.com/FrancescAlted/blosc
嗯...发布此帖子并获得回复所花费的时间可能至少是您节省的时间的两倍...现在请原谅我重新编译我的内核,以便从我的 2 秒启动时间中再缩短 0.1 秒。