Что я должен полагаться на lbzip2 или pbzip2?

10

Поскольку bzip2 претендует на сжатие лучше всего (по размеру), я решил использовать его. Рабочий сервер может предложить 24 (виртуальных) ЦП (4 реальных X5650 @ 2,67 ГГц) - и поэтому я решил искать параллельные варианты.
Использование debian stable - извините, но я нашел лучшие матчи здесь в askubuntu - я решил более внимательно посмотреть на pbzip2 и lbzip2 .
Но что выбрать? В фактическом стабильном pbzip2 находится в версии 1.1.1-1 и lbzip2 в версии 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 .

    
задан Bastian Ebeling 27.09.2011 в 09:42
источник

2 ответа

8

Вот основная идея, как их оценить.

Возьмите большой архив, в котором вы обычно работаете. Сжимайте его с помощью bzip2, pbzip2, lbzip2. Измерьте (настенные часы) раз и сохраните все выходы в разных файлах. Это даст вам три раза и три размера файла.

Затем перебирайте все три выходных файла (то есть выходы сжатия bzip2, pbzip2, lbzip2) и распаковывайте каждый со всеми тремя утилитами (bzip2, pbzip2 и lbzip2). Это даст вам еще девять раз.

Запустите двенадцать тестов под некоторым профилировщиком и получите максимальное использование памяти (виртуальное и RSS) для каждого. Опять же, это даст 12 значений. (Если ваш Linux настроен без перекомпоновки, тогда вас интересует VSZ. В противном случае вы заботитесь о RSS).

Сделайте таблицу с 12 строками для этих точек данных - col1: 3 сжатых размера, col2: 3 времени сжатия / 9 времени декомпрессии, col3: 12 пиковых мемов - и выберите то, что вам подходит. Вы должны учитывать, как часто вы сжимаете, как часто вы декомпрессируете.

Я использую lbzip2-0.23, но я написал его, поэтому он не учитывается.

Наконец, независимо от того, какой из них вам лучше всего подходит, всегда сохранять контрольную сумму архива несжатого , а также проверять сохраненный файл перед объявлением резервного копирования «done».

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
    
ответ дан lacos 08.10.2011 в 20:46
источник
4

Я сделал некоторые сравнительные тесты для bzip2 vs pbzip2 и lbzip2, а также lzip и plzip на странице Ссылка . Мне нравится ускорение скорости для lbzip2, если у вас достаточно памяти.

    
ответ дан p4guru 22.11.2011 в 05:07