lbzip2 또는 pbzip2에 무엇을 사용해야합니까?


10

bzip2가 압축률이 가장 우수하다고 주장함에 따라 사용하기로 결정했습니다. 작업 서버는 24 개 (가상) CPU (4 개의 실제 X5650 @ 2.67GHz)를 제공 할 수 있으므로 병렬 변형을 찾기로 결정했습니다.
사용 debian stable미안 해요,하지만 난 여기 askubuntu에서 최상의 상대를 발견 - - 내가 좀 더 자세히 살펴하기로 결정 pbzip2하고 lbzip2.
그러나 무엇을 선택해야합니까? 실제로 안정 pbzip2버전 1.1.1-1lbzip2버전 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  

사용 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

무엇을 사용해야합니까? 주요 차이점은 무엇입니까? 현재 나는 향하고있다 lbzip2.


1
빠른 참고 : 일반 bzip2로 압축 된 파일 은 pbzip2로 압축 해제 할 때 성능이 향상되지 않습니다. 그러나 pbzip2는 이전 버전과 호환되며 단일 스레드 또는 병렬 유틸리티로 압축을 풀 수 있습니다.
STW

답변:


11

다음은이를 평가하는 기본 아이디어입니다.

일반적으로 사용하는 종류의 큰 타르볼을 가져 가십시오. bzip2, pbzip2, lbzip2로 압축하십시오. (벽시계) 시간을 측정하고 모든 출력을 다른 파일로 저장하십시오. 이렇게하면 파일 크기가 3 배, 3 배가됩니다.

그런 다음 세 개의 출력 파일 (예 : bzip2, pbzip2, lbzip2의 압축 출력)을 반복하고 세 가지 유틸리티 (bzip2, pbzip2 및 lbzip2)를 사용하여 각각 압축을 해제하십시오. 이것은 당신에게 9 번 더 줄 것입니다.

일부 프로파일 러에서 12 개의 테스트를 다시 실행하고 각각에 대한 최대 메모리 사용량 (가상 및 RSS)을 얻습니다. 다시 말하지만 12 개의 값이 생성됩니다. (리눅스가 초과 커밋되지 않도록 구성된 경우 VSZ에 관심이 있습니다. 그렇지 않으면 RSS에 관심이 있습니다).

col1 : 3 압축 크기, col2 : 3 압축 시간 / 9 압축 해제 시간, col3 : 12 피크 mems와 같은 이러한 데이터 포인트에 대해 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

4

http://vbtechsupport.com/1614/ 에서 lzip 및 plzip과 함께 bzip2 대 pbzip2 및 lbzip2에 대한 비교 벤치 마크를 수행했습니다 . 충분한 메모리가있는 한 lbzip2의 속도 향상을 좋아합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.