1. 소개

홈페이지 : http://compression.ca/pbzip2/
pbzip2는 smp (symmetric multiprocessing - dual cpu, dualcore 포함)를 지원하는 bzip2 압축 프로그램입니다.
대용량 파일을 압축시  pthreads를 이용 매우 큰(?) 성능 향상을 볼 수 있다고 합니다.

기존에는 tar와 gzip( tar -z) 이 많이 사용되었고 최근에는 tar와 bzip2( tar -j )이 많이 사용되고 있습니다.
pbzip2는 기존 bzip2의 높은 압축률에 더해 smp까지 지원해 더욱 빠른 압축 속도를 보여주므로 앞으로 많이
사용될것으로 생각됩니다.

새로운 압축 프로그램이 나오게 되면 기존 압축 프로그램들과의 호환성이 문제가 될 경우도 있을 수 있는데
pbzip2로 압축된 bzip2파일은 bzip2 1.0.2이상 버전과 완벽하게 호환 된다고 합니다.
pbzip2로 압축된 파일을 다른시스템으로 옮겨 압축해제도 이상 없이 잘 될 것으로 보입니다.


2. 설치

다운로드 :
http://compression.ca/pbzip2/pbzip2-1.0.5.tar.gz
http://compression.ca/pbzip2/pbzip2-1.0.5-1.src.rpm
또는 이 글의 첨부파일로 받을 수 있습니다.
설치시 libbzip2이 필요하고 간단히 make 명령으로 실행파일을 만들 수 있습니다.

3. 사용 방법

pbzip2역시 기존 gzip이나 bzip2와 마찬가지로 tar와 연계(?)해 압축할 수 있는 옵션을 제공 합니다.
tar -c  test --use-compress-prog=pbzip2 test_dir
굵은 폰트의 --use-compress-prog=pbzip2 옵션으로 기존 프로그램의 수정이나 기타 설정 없이 그대로 사용하면
됩니다. 옵션이 약간 길어서 불편할 수 도있겠지만 적당히 alias를 설정해 사용 하면 쉽게 해결 가능하죠 :)


pbzip2의 간단한 압축 실행 화면과 도움말 입니다.
특이한 점은 인식된 cpu의 갯수를 보여주는 것입니다. 실행 옵션으로 -p2를 사용해 cpu가 2개임을 명시적으로
실행 옵션에 포함시켜 실행했지만 자동 감지로 시스템에 설치된 cpu갯수 만큼 알아서 사용합니다.
아래 스크린샷(?)에는 파일 크기가 작아 cpu별로 파일을 쪼개 압축하지 않아서 (no threads)메세지가 나오지만
일정 크기 이상의 파일에는 정상 동작 하게 됩니다.

pbzip2.jpg



아래는 간단한 옵션 설명 입니다.
[root@free4u tmp]# pbzip2 -h
Usage: pbzip2 [-1 .. -9] [-b#cdfhklp#qrtVz] <filename> <filename2> <filenameN>
 -b#      : where # is the file block size in 100k (default 9 = 900k)
 -c       : output to standard out (stdout)
 -d       : decompress file
 -f       : force, overwrite existing output file
 -h       : print this help message
 -k       : keep input file, don't delete
 -l       : load average determines max number processors to use
 -p#      : where # is the number of processors (default: autodetect [2])
 -q       : quiet mode (default)
 -r       : read entire input file into RAM and split between processors
 -t       : test compressed file integrity
 -v       : verbose mode
 -V       : display version info for pbzip2 then exit
 -z       : compress file (default)
 -1 .. -9 : set BWT block size to 100k .. 900k (default 900k)

Example: pbzip2 -b15vk myfile.tar
Example: pbzip2 -p4 -r -5 myfile.tar second*.txt
Example: tar cf myfile.tar.bz2 --use-compress-prog=pbzip2 dir_to_compress/
Example: pbzip2 -d myfile.tar.bz2


4. 기타 사항

2009년1월 1.0.5버전으로 업데이트 되면서 cpu 자동감지 부분이 개선 되었고 터미널에 바이너리 코드를 뿌려 화면을
엉망으로 만들지 않는다고 하네요. 아주 좋은 개선점 입니다. Array
  • Now properly complains about trying to read or write compressed data to terminal, and exits
  • Further fixed CPU detection crash
  • Updated Makefile to force deletion when cleaning


첨부 파일은 pbzip 소스파일과 srpm파일입니다.
깔끔하게(?) 해당시스템에서 srpm을 리빌드해 설치하는것도 좋겠네요 Array

관련 링크 :
http://compression.ca/pbzip2/
http://compression.ca/mpibzip2/
http://www.bzip.org/

'ETC' 카테고리의 다른 글

windows 7 & x-mouse  (0) 2009.09.08
find 활용팁  (2) 2009.06.10
euckr to utf8  (3) 2009.01.09
windows용 filezilla with FTP over SSL (CCC) patch  (41) 2008.12.10
firefox .NET Framework Assistant 확장 제거  (2) 2008.09.16

+ Recent posts