2014年4月15日 星期二

多線程 tar 壓縮與解壓縮

TAR 是單線程的, 就算是多核 CPU, 只有單核 CPU 使用率 100%, 其他的在睡覺.

有人寫了多線程壓縮器來充分使用多核心優勢
http://www.zlib.net/pigz/
http://lbzip2.org/
http://www.nongnu.org/lzip/plzip.html
http://jnovy.fedorapeople.org/pxz/
http://sourceforge.net/projects/pixz/files/
https://wiki.archlinux.org/index.php/Lrzip



ubuntu 直接安裝
sudo apt-get install pigz
sudo apt-get install lbzip2
sudo apt-get install plzip
sudo apt-get install lrzip

pxz & pixz 目前不在 ubuntu 套件內, 需要自己拉 source code rebuild


Compress
tar -I pigz -cf test.tar.gz *

Decompress

tar -I pigz -xf test.tar.gz

剩下的問題就看 Harddisk & memory 速度有多快


也可以把 pigz rename 成 gzip,  來省去 "-I pigz"

另外有人拿 tar 的 source code 重新編譯, 在 configure 加參數  
"--with-gzip=pigz"  "--with-bzip2=lbzip2" "--with-lzip=plzip" 

這樣就不需要使用 "-I  xxx" 參數  

tar --help | grep "lbzip2\|7x\|plzip\|pigz"
  -j, --bzip2                filter the archive through lbzip2
  -J, --xz                   filter the archive through 7x
      --lzip                 filter the archive through plzip
  -z, --gzip, --gunzip, --ungzip   filter the archive through pigz

追蹤者