Время для архивирования очень больших (100 г) файлов

Мне приходится сжимать несколько очень больших файлов (80 ГБ), и я удивлен (отсутствием) скорости, которую демонстрирует моя система. Я получаю скорость преобразования около 500 МБ/мин; используя top, я, кажется, использую один процессор примерно на 100%.

Я почти уверен, что это не (просто) скорость доступа к диску, так как создание файла tar (именно так был создан файл 80G) заняло всего несколько минут (может быть, 5 или 10), но после более чем 2 часов мой простой команда gzip все еще не выполнена.

Вкратце:

tar -cvf myStuff.tar myDir/*

Потребовалось <5 минут, чтобы создать файл tar объемом 87 Г

gzip myStuff.tar

Потребовалось два часа и 10 минут, чтобы создать zip-файл размером 55 ГБ.

Мой вопрос: Это нормально? Есть ли в gzip определенные опции для ускорения процесса? Было бы быстрее объединить команды и использовать tar -cvfz? Я видел ссылку на pigz - Параллельная реализация GZip - но, к сожалению, я не могу установить программное обеспечение на используемую мной машину, так что для меня это не вариант. См., например, этот предыдущий вопрос.

Я намерен попробовать некоторые из этих вариантов сам и рассчитать их время - но вполне вероятно, что я не попаду в "волшебную комбинацию" вариантов. Я надеюсь, что кто-то на этом сайте знает правильный трюк, чтобы ускорить процесс.

Когда у меня будут доступны результаты других испытаний, я обновлю этот вопрос, но если у кого-нибудь есть особенно хороший трюк, я был бы очень признателен оно. Может быть, gzip просто занимает больше времени на обработку, чем я предполагал...

ОБНОВЛЕНИЕ

Как и было обещано, я попробовал приемы, предложенные ниже: измените степень сжатия и измените назначение файла. Я получил следующие результаты для tar, который составлял около 4,1 ГБ:

flag    user      system   size    sameDisk
-1     189.77s    13.64s  2.786G     +7.2s 
-2     197.20s    12.88s  2.776G     +3.4s
-3     207.03s    10.49s  2.739G     +1.2s
-4     223.28s    13.73s  2.735G     +0.9s
-5     237.79s     9.28s  2.704G     -0.4s
-6     271.69s    14.56s  2.700G     +1.4s
-7     307.70s    10.97s  2.699G     +0.9s
-8     528.66s    10.51s  2.698G     -6.3s
-9     722.61s    12.24s  2.698G     -4.0s

Так что да, изменение флага по умолчанию -6 на самый быстрый -1 дает мне ускорение на 30%, при этом (для моих данных) размер zip-файла практически не изменяется. Использую ли я один и тот же диск или другой по сути не имеет значения (мне пришлось бы запускать это несколько раз, чтобы получить какую-либо статистическую значимость).

Если кому-то интересно, я сгенерировал эти временные ориентиры, используя следующие два сценария:

#!/bin/bash
# compare compression speeds with different options
sameDisk='./'
otherDisk='/tmp/'
sourceDir='/dirToCompress'
logFile='./timerOutput'
rm $logFile

for i in {1..9}
  do  /usr/bin/time -a --output=timerOutput ./compressWith $sourceDir $i $sameDisk $logFile
  do  /usr/bin/time -a --output=timerOutput ./compressWith $sourceDir $i $otherDisk $logFile
done

И второй сценарий (compressWith):

#!/bin/bash
# use: compressWith sourceDir compressionFlag destinationDisk logFile
echo "compressing $1 to $3 with setting $2" >> $4
tar -c $1 | gzip -$2 > $3test-$2.tar.gz

Три вещи, которые следует отметить:

  1. Используя /usr/bin/time вместо time, так как встроенная команда bash имеет намного меньше опций, чем команда GNU
  2. Я этого не делал потрудитесь использовать опцию --format, хотя это облегчит чтение файла журнала
  3. Я использовал сценарий в сценарии, так как time, казалось, работал только с первой командой в конвейерной последовательности (поэтому я сделал так, чтобы это выглядело как одна команда...).

Изучив все это, я пришел к следующим выводам

  1. Ускорьте процесс с помощью флага -1 (принятый ответ)
  2. Гораздо больше времени тратится на сжатие данных, чем на чтение с диска
  3. Инвестируйте в более быстрое программное обеспечение для сжатия (pigz кажется хорошим выбором).
  4. Если у вас есть несколько файлов для сжатия, вы можете поместить каждую команду gzip в отдельный поток и использовать больше доступного процессора (бедняга pigz)

Спасибо всем, кто помог мне всему этому научиться!