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

Поскольку 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.

10
задан 27 September 2011 в 13:47

2 ответа

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

Возьмите большой tarball вида, с которым Вы обычно работаете. Сожмите его с 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, но я записал это, таким образом, это не рассчитывает.

Наконец, неважно, какой оказывается лучшим для Вас, всегда сохраняйте контрольную сумму несжатого 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
11
ответ дан 27 September 2011 в 13:47

Я сделал несколько сравнительных тестов для bzip2 против pbzip2 и lbzip2 вместе с lzip и plzip на http://vbtechsupport.com/1614/ . Мне нравятся улучшения скорости для lbzip2, если у вас достаточно памяти.

0
ответ дан 27 September 2011 в 13:47

Другие вопросы по тегам:

Похожие вопросы: