Pertanyaan Apa yang harus saya andalkan pada lbzip2 atau pbzip2?


Karena bzip2 mengklaim untuk memampatkan yang terbaik (dalam ukuran), saya memutuskan untuk menggunakannya. Server yang bekerja dapat menawarkan 24 (virtual) CPU (4 real X5650 @ 2.67GHz) - dan dengan demikian saya memutuskan untuk mencari varian paralel.
Menggunakan debian stable - maaf, tapi saya menemukan yang paling cocok di sini di askubuntu - saya memutuskan untuk melihat lebih dekat pbzip2dan lbzip2.
Tetapi apa yang harus dipilih? Dalam stabil sebenarnya pbzip2 dalam versi 1.1.1-1dan lbzip2 dalam versi 0.23-1. Itu mungkin cenderung kosmetik pbzip2 - tapi lbzip2 mengatakan itu bahkan pada komputer single-core lebih cepat. Di samping itu pbzip2 mengklaim sepenuhnya kompatibel dengan bzip2 v1.0.2.
Selain itu saya punya beberapa nilai-waktu dari pekerjaan lokal besar:
Menggunakan 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  

Menggunakan 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

Apa yang harus digunakan? Apa perbedaan utamanya? Saat ini saya cenderung menuju lbzip2.


10
2017-09-27 09:42


asal


Catatan singkat: file dikompresi dengan reguler bzip2 tidak akan melihat peningkatan kinerja saat didekompresi dengan pbzip2. Namun pbzip2 mengarsipkan kompatibel mundur - mereka dapat didekompresi dengan utilitas single-threaded atau parallelized. - STW


Jawaban:


Berikut ide dasar cara mengevaluasinya.

Ambil tarbal besar dari jenis yang biasa Anda gunakan. Kompres dengan bzip2, pbzip2, lbzip2. Ukur jam (jam dinding) dan simpan semua output dalam file yang berbeda. Ini akan memberi Anda tiga kali dan tiga ukuran file.

Kemudian iterate atas ketiga file output (mis. Output kompresi bzip2, pbzip2, lbzip2), dan dekompresi masing-masing dengan ketiga utilitas (bzip2, pbzip2, dan lbzip2). Ini akan memberi Anda sembilan kali lebih lanjut.

Jalankan kembali dua belas tes di bawah profiler dan dapatkan penggunaan memori puncak (virtual dan RSS) untuk masing-masing. Sekali lagi, ini akan menghasilkan 12 nilai. (Jika Linux Anda dikonfigurasi untuk tidak terlalu banyak, maka Anda tertarik dengan VSZ. Kalau tidak, Anda peduli tentang RSS).

Buatlah tabel dengan 12 baris untuk titik-titik data ini - col1: 3 ukuran terkompresi, waktu kompresi col2: 3/9 waktu dekompresi, col3: 12 puncak mems - dan pilih yang paling sesuai untuk Anda. Anda harus mempertimbangkan seberapa sering Anda mengompres vs seberapa sering Anda melakukan dekompresi.

Saya menggunakan lbzip2-0.23, tetapi saya menulisnya, jadi itu tidak dihitung.

Akhirnya, tidak peduli yang mana yang terbukti terbaik untuk Anda, selalu menyimpan checksum dari tidak terkompresi tarball, plus verifikasi file yang Anda simpan sebelum menyatakan cadangan "selesai".

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

8
2017-10-08 20:46





Saya melakukan perbandingan perbandingan untuk bzip2 vs pbzip2 dan lbzip2 bersama dengan lzip dan plzip di http://vbtechsupport.com/1614/. Saya menyukai peningkatan kecepatan untuk lbzip2 selama Anda memiliki cukup memori.


4
2017-11-22 05:07