由于 bzip2 声称压缩效果最好(在大小上),我决定使用它。工作服务器可以提供 24 个(虚拟)CPU(4 个真正的 X5650 @ 2.67GHz)——因此我决定寻找并行变体。
使用debian stable- 抱歉,但我在 askubuntu 中找到了最佳匹配 - 我决定仔细查看pbzip2和lbzip2。
但是选择什么?实际上, stablepbzip2是 version1.1.1-1和lbzip2version 0.23-1。从表面上看,这可能会pbzip2- 但lbzip2说它甚至在单核计算机上也更快。另一方面pbzip2声称完全兼容bzip2 v1.0.2.
此外,我还有一些本地大型工作的时间值:
使用lbzip2
Command being timed: "tar -cjf /tmp/mapleTAsicherung.lbzip2.tar /bin /etc /lib /lib32 /opt /sbin /selinux /usr"
User time (seconds): 2134.32
System time (seconds): 39.24
Percent of CPU this job got: 2099%
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:43.51
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1509088
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 1054467
Voluntary context switches: 153901
Involuntary context switches: 235285
Swaps: 0
File system inputs: 0
File system outputs: 3460632
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Run Code Online (Sandbox Code Playgroud)
使用 pbzip2
Command being timed: "tar -cjf /tmp/mapleTAsicherung.pbzip2.tar /bin /etc /lib /lib32 /opt /sbin /selinux /usr"
User time (seconds): 3158.18
System time (seconds): 59.80
Percent of CPU this job got: 2095%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:33.56
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1436320
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 477683
Voluntary context switches: 151326
Involuntary context switches: 339246
Swaps: 0
File system inputs: 0
File system outputs: 3460536
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Run Code Online (Sandbox Code Playgroud)
应该用什么?主要区别是什么?目前我倾向于lbzip2.
lac*_*cos 11
这是如何评估它们的基本思想。
拿一个你通常使用的那种大 tarball。用 bzip2、pbzip2、lbzip2 压缩它。测量(挂钟)时间并将所有输出保存在不同的文件中。这将为您提供三倍和三个文件大小。
然后迭代所有三个输出文件(即 bzip2、pbzip2、lbzip2 的压缩输出),并使用所有三个实用程序(bzip2、pbzip2 和 lbzip2)解压缩每个文件。这会给你更多的九次。
在某个分析器下重新运行 12 个测试,并获得每个测试的峰值内存使用量(虚拟和 RSS)。同样,这将产生 12 个值。(如果您的 Linux 配置为不过度使用,那么您对 VSZ 感兴趣。否则您关心 RSS)。
为这些数据点制作一个包含 12 行的表格——col1:3 个压缩大小,col2:3 次压缩时间/9 次解压缩,col3:12 个峰值内存——并选择最适合您的。您应该考虑压缩的频率与解压缩的频率。
我用的是lbzip2-0.23,但是我写的,所以不算。
最后,无论哪一个最适合您,请始终保存未压缩tarball的校验和,并在声明备份“完成”之前验证您保存的文件。
FILES=...
OUTDIR=/mnt/archive
BZ2_UTIL=...
(
tar -c -- $FILES \
| tee >(sha256sum >"$OUTDIR"/myfiles.tar.sha256) \
| pv -c -N plain 2>/dev/tty \
| "$BZ2_UTIL" \
| pv -c -N compr 2>/dev/tty \
> "$OUTDIR"/myfiles.tar.bz2
) 2>"$OUTDIR"/myfiles.err
"$BZ2_UTIL" -dc -- "$OUTDIR"/myfiles.tar.bz2 \
| sha256sum -c -- "$OUTDIR"/myfiles.tar.sha256
Run Code Online (Sandbox Code Playgroud)
小智 6
我在http://vbtechsupport.com/1614/上对 bzip2 与 pbzip2 和 lbzip2 以及 lzip 和 plzip 进行了一些比较基准测试。只要您有足够的内存,我就喜欢 lbzip2 的速度改进。
| 归档时间: |
|
| 查看次数: |
14073 次 |
| 最近记录: |