多CPU核心gzip压缩大文件(multi cpu core gzip a big file)

2019-10-20 08:42发布

我如何可以使用所有的CPU内核在我的服务器(有4个内核)的Linux Debian的OpenVZ的过度到使用gzip压缩更快的一个大文件

我试图使用这些命令,但我不能把拼在一起

得到的芯数CORES=$(grep -c '^processor' /proc/cpuinfo)

在此多为分割大文件split -b100 file.big

这对于使用多核心gzip命令find /source -type f -print0 | xargs -0 -n 1 -P $CORES gzip --best find /source -type f -print0 | xargs -0 -n 1 -P $CORES gzip --best

我不知道这是否是为大文件优化gzip的过程中,最好的方式..

Answer 1:

使用pigz ,并行的gzip实现。

不同于parallelgzippigz产生单一的gzip流。



Answer 2:

尝试GNU并行

cat bigfile | parallel --pipe --recend '' -k gzip -9 >bigfile.gz

这将使用所有的内核并行gzip压缩。

通过比较的方式,在我的Mac OSX运行小牛的,并且使用固态磁盘6.4GB的文件,这个命令

time gzip -9 <bigger >/dev/null

需要4个分钟时间极23s和在50%左右使用1-2的CPU。

而下面的GNU水货版本

time cat bigger | parallel --pipe --recend '' -k gzip -9 >/dev/null

需要1分44秒,并保持所有8个核心80 +%忙。 一个非常显著差异,与GNU并行下的简单的方法的40%的时间运行英寸



文章来源: multi cpu core gzip a big file