Поскольку 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
.
Вот основная идея, как их оценить.
Возьмите большой архив, в котором вы обычно работаете. Сжимайте его с помощью bzip2, pbzip2, lbzip2. Измерьте (настенные часы) раз и сохраните все выходы в разных файлах. Это даст вам три раза и три размера файла.
Затем перебирайте все три выходных файла (то есть выходы сжатия bzip2, pbzip2, lbzip2) и распаковывайте каждый со всеми тремя утилитами (bzip2, pbzip2 , и lbzip2). Это даст вам еще девять раз.
Повторите двенадцать тестов под некоторым профилировщиком и получите максимальное использование памяти (виртуальное и RSS) для каждого. Опять же, это даст 12 значений.
Составьте таблицу с 12 строками для этих точек данных - col1: 3 сжатых размера, col2: 3 времени сжатия / 9 времени декомпрессии, col3: 12 пиковых мемов - и выберите то, что подходит вам лучше всего. Вы должны учитывать, как часто вы сжимаете, как часто вы декомпрессируете.
Я использую lbzip2-0.23, но я написал его, поэтому он не учитывается.
Наконец, нет который лучше всего подходит для вас, всегда сохраняйте контрольную сумму несжатого tarball, а также проверяйте сохраненный файл перед объявлением резервной копии «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
Я сделал некоторые сравнительные тесты для bzip2 vs pbzip2 и lbzip2 вместе с lzip и plzip по адресу http://vbtechsupport.com/1614/. Мне нравится улучшение скорости для lbzip2, если у вас достаточно памяти.
Я сделал некоторые сравнительные тесты для bzip2 vs pbzip2 и lbzip2 вместе с lzip и plzip в http://vbtechsupport.com/1614/ . Мне нравится ускорение для lbzip2, если у вас достаточно памяти.
Я сделал некоторые сравнительные тесты для bzip2 vs pbzip2 и lbzip2 вместе с lzip и plzip в http://vbtechsupport.com/1614/ . Мне нравится ускорение для lbzip2, если у вас достаточно памяти.