Lbzip2 veya pbzip2'ye neye güvenmeliyim?


10

Bzip2'nin en iyi (boyutta) sıkıştırdığını iddia ettiği gibi kullanmaya karar verdim. Çalışma sunucusu 24 (sanal) CPU (4 gerçek X5650 @ 2.67GHz) sunabilir ve böylece paralel varyantlar aramaya karar verdim.
Kullanarak debian stable- üzgünüm, ama askubuntu burada en iyi maç bulundu - pbzip2ve daha yakından bakmak karar verdi lbzip2.
Ama ne seçilir? Gerçek kararlı pbzip2sürümü 1.1.1-1ve lbzip2sürümü 0.23-1. Bu kozmetik olarak eğilim gösterebilir pbzip2- ancak lbzip2tek çekirdekli bilgisayarlarda bile daha hızlı olduğunu söylüyor. Öte yandan pbzip2tamamen uyumlu olduğu iddia ediliyor bzip2 v1.0.2.
Ayrıca büyük bir yerel iş bazı zamanlama değerleri var:
kullanmalbzip2

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  

kullanma 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

Kişi ne kullanmalı? En büyük farklar nelerdir? Şu anda eğiliyorum lbzip2.


1
Kısa not: Normal bzip2 ile sıkıştırılmış dosyalar pbzip2 ile açıldığında performans artışı görmez. Bununla birlikte, pbzip2 geriye dönük olarak uyumludur - tek iş parçacıklı veya paralelleştirilmiş bir yardımcı programla açılabilir.
STW

Yanıtlar:


11

İşte bunları nasıl değerlendireceğiniz hakkında temel bir fikir.

Genellikle birlikte çalıştığınız türden büyük bir tarball alın. Bzip2, pbzip2, lbzip2 ile sıkıştırın. (Duvar saati) sürelerini ölçün ve tüm çıkışları farklı dosyalara kaydedin. Bu size üç kez ve üç dosya boyutu verecektir.

Daha sonra üç çıktı dosyasının tamamını yineleyin (örn., Bzip2, pbzip2, lbzip2 sıkıştırma çıktıları) ve her birini üç yardımcı programla (bzip2, pbzip2 ve lbzip2) açın. Bu size dokuz kez daha verir.

On iki testi bir profiler altında yeniden çalıştırın ve her biri için en yüksek bellek kullanımını (sanal ve RSS) edinin. Yine, bu 12 değer verecektir. (Linux'unuz fazla devreye girmeyecek şekilde yapılandırılmışsa, VSZ ile ilgilenirsiniz. Aksi takdirde RSS ile ilgilenirsiniz).

Bu veri noktaları için 12 satır içeren bir tablo yapın - col1: 3 sıkıştırılmış boyutlar, col2: 3 sıkıştırma süreleri / 9 dekompresyon süreleri, col3: 12 tepe noktaları - ve size en uygun olanı seçin. Ne sıklıkta sıkıştırma yaptığınızı ve ne sıklıkta sıkıştırma yaptığınızı hesaba katmalısınız.

Lbzip2-0.23 kullanıyorum, ama yazdım, bu yüzden sayılmaz.

Son olarak, hangisinin sizin için en uygun olduğu önemli değil, her zaman sıkıştırılmamış tarball'ın bir sağlama toplamını kaydedin ve yedeklemeyi "tamamlandı" olarak bildirmeden önce kaydedilen dosyanızı doğrulayın.

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

Ben de lzip ve plzip birlikte pbzip2 ve lbzip2 vs bzip2 için bazı karşılaştırma kriterler yaptılar http://vbtechsupport.com/1614/ . Yeterince bellek olduğu sürece lbzip2 için hız geliştirmelerini beğeniyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.