
Я сжимаю резервную копию mongodb (~500 ГБ) в архив .tar.gz, что занимает время в масштабах часов. Я пытаюсь восстановить эту базу данных на разных машинах для тестирования и хотел бы получить оценку того, сколько времени это займет на каждой машине.
Мой вопрос: можно ли как-то оценить время, которое потребуется для распаковки архива, исходя из того, сколько времени заняло сжатие?
Спасибо
решение1
Я не знаю стандартного соотношения сжатия и распаковки, поскольку это действительно зависит от ваших данных и ресурсов сервера. Если предположить, что все остальные ресурсы равны, распаковка обычно происходит быстрее, поскольку требуется меньше вычислительной работы. Ваша оценка в худшем случае может быть такой же, как и начальное время сжатия.
Однако для легкой победы я бы рекомендовал использоватьpigz
, параллельная реализация, gzip
которая использует преимущества нескольких процессоров и ядер. Если у вас не только одно ядро, pigz
должно существенно сократить время как сжатия, так и распаковки.
Пример использования с tar
:
tar -c --use-compress-program=pigz -f data.tgz /path/to/data
Дополнительные примеры см.StackOverflow: Использование многоядерных процессоров для сжатия/распаковки tar+gzip/bzip.
решение2
Нет определенного соотношения на одной машине, и использование нескольких машин (разных типов) определенно может иметь влияние. Сжатие и распаковка активно задействуют хранилище данных (например, «жесткий диск» или «SSD»), процессор и другие компоненты, такие как память.
В качестве чрезмерного обобщения, распаковка довольно быстрая и может быть даже быстрее, чем копирование несжатого объема данных. Сжатие также может быть таким же быстрым, и для чего-то вроде сжатия RLE это может быть так. Для zip и gzip распространенные реализации медленнее, чем распаковка, и вы часто можете выжать еще 5%-15% эффективности сжатия, если выберете более агрессивные параметры сжатия, которые могут занять в 2-4 раза больше времени.
Разница в основном в том, что сжатие включает в себя некоторое тестирование (иногда считающееся "угадыванием"), и некоторые тесты бесплодны. В отличие от этого, декомпрессия, как правило, просто следует предустановленному процессу, так что это происходит относительно быстрее.