1

Я сжимаю резервную копию mongodb (~ 500 ГБ) в архив .tar.gz, который занимает время в масштабе часов. Я пытаюсь восстановить эту базу данных на разных машинах для целей тестирования, и мне хотелось бы получить оценку того, сколько времени это займет для каждой машины.

У меня вопрос: можно ли как-нибудь оценить время, которое потребуется для распаковки архива, исходя из того, сколько времени заняло сжатие?

Спасибо

2 ответа2

0

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

Однако для легкой победы я бы порекомендовал использовать pigz, параллельную реализацию gzip , использующую преимущества нескольких процессоров и ядер. Если у вас есть только одно ядро, pigz должен существенно сократить время как на сжатие, так и на декомпрессию.

Пример использования с tar:

tar -c --use-compress-program=pigz -f data.tgz /path/to/data

Дополнительные примеры см. В разделе StackOverflow: использование многоядерного режима для сжатия / распаковки tar+gzip / bzip.

0

На одной и той же машине нет определенного соотношения, и использование нескольких машин (разных типов) может оказать определенное влияние. Сжатие и распаковка активно включают хранение данных (например, "жесткий диск" или "SSD"), процессор и другие компоненты, такие как память.

Как чрезмерное обобщение, распаковка выполняется довольно быстро и даже может быть быстрее, чем копирование несжатого объема данных. Сжатие также может быть таким же быстрым, и для чего-то вроде сжатия RLE это может быть. Для zip и gzip обычные реализации медленнее, чем декомпрессия, и вы часто можете выжать еще 5% -15% эффективности сжатия, если вы выбираете более агрессивные варианты сжатия, которые могут занимать в 2-4 раза больше времени.

Разница в значительной степени заключается в том, что сжатие включает в себя некоторое тестирование (иногда называемое "догадкой"), а некоторые тесты бесплодны. Напротив, декомпрессия, как правило, просто следует заранее установленному процессу, так что это происходит относительно быстрее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .