Tôi nên dựa vào lbzip2 hoặc pbzip2?


10

Vì bzip2 tuyên bố nén tốt nhất (về kích thước), tôi quyết định sử dụng nó. Máy chủ hoạt động có thể cung cấp 24 CPU (ảo) (4 X5650 @ 2.67GHz thực) - và do đó tôi quyết định tìm kiếm các biến thể song song.
Sử dụng debian stable- xin lỗi, nhưng tôi đã tìm thấy kết quả phù hợp nhất ở đây trong Askubfox - tôi quyết định xem xét kỹ hơn pbzip2lbzip2.
Nhưng chọn gì? Trong thực tế ổn định pbzip2là trong phiên bản 1.1.1-1lbzip2trong phiên bản 0.23-1. Điều đó có thể có xu hướng thẩm mỹ pbzip2- nhưng lbzip2nói rằng nó thậm chí trên các máy tính lõi đơn nhanh hơn. Mặt khác pbzip2tuyên bố là hoàn toàn tương thích với bzip2 v1.0.2.
Ngoài ra, tôi có một số giá trị thời gian của một công việc địa phương lớn:
Sử dụnglbzip2

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  

Sử dụng 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

Nên dùng cái gì? Sự khác biệt chính là gì? Hiện tại tôi có xu hướng lbzip2.


1
Lưu ý nhanh: các tệp được nén bằng bzip2 thông thường sẽ không thấy hiệu suất tăng khi giải nén với pbzip2. Tuy nhiên, pbzip2 lưu trữ một khả năng tương thích ngược - chúng có thể được giải nén với một tiện ích đơn luồng hoặc song song.
STW

Câu trả lời:


11

Đây là một ý tưởng cơ bản làm thế nào để đánh giá chúng.

Lấy một tarball lớn của loại bạn thường làm việc với. Nén nó bằng bzip2, pbzip2, lbzip2. Đo thời gian (đồng hồ treo tường) và lưu tất cả các đầu ra trong các tệp khác nhau. Điều này sẽ cung cấp cho bạn ba lần và ba kích cỡ tập tin.

Sau đó lặp lại trên cả ba tệp đầu ra (ví dụ: đầu ra nén của bzip2, pbzip2, lbzip2) và giải nén từng tệp với cả ba tiện ích (bzip2, pbzip2 và lbzip2). Điều này sẽ cung cấp cho bạn hơn chín lần.

Chạy lại mười hai bài kiểm tra dưới một số trình lược tả và nhận mức sử dụng bộ nhớ tối đa (ảo và RSS) cho mỗi bài kiểm tra. Một lần nữa, điều này sẽ mang lại 12 giá trị. (Nếu Linux của bạn được định cấu hình không quá mức, thì bạn quan tâm đến VSZ. Nếu không, bạn quan tâm đến RSS).

Tạo một bảng có 12 hàng cho các điểm dữ liệu này - col1: 3 kích thước nén, col2: 3 lần nén / 9 lần giải nén, col3: 12 đỉnh mems - và chọn những gì phù hợp nhất với bạn. Bạn nên tính đến tần suất bạn nén so với tần suất bạn giải nén.

Tôi sử dụng lbzip2-0,23, nhưng tôi đã viết nó, vì vậy nó không được tính.

Cuối cùng, bất kể cái nào chứng minh điều tốt nhất cho bạn, hãy luôn lưu một tổng kiểm tra tarball không nén , cộng với xác minh tệp đã lưu của bạn trước khi tuyên bố sao lưu "xong".

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

Tôi đã thực hiện một số điểm chuẩn so sánh cho bzip2 so với pbzip2 và lbzip2 cùng với lzip và plzip tại http://vbtechsupport.com/1614/ . Tôi thích các ứng dụng tốc độ cho lbzip2 miễn là bạn có đủ bộ nhớ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.