.Tar.gz: ¿Existe una relación entre el tiempo de comprimir y descomprimir?

.Tar.gz: ¿Existe una relación entre el tiempo de comprimir y descomprimir?

Estoy comprimiendo una copia de seguridad de un mongodb (~ 500 GB) en un archivo .tar.gz, lo que lleva tiempo en la escala de horas. Estoy intentando recuperar esa base de datos en diferentes máquinas con fines de prueba y me gustaría tener una estimación de cuánto tiempo llevará esto por máquina.

Mi pregunta es, ¿hay alguna forma de estimar el tiempo que llevará descomprimir el archivo, en función del tiempo que tomó la compresión?

Gracias

Respuesta1

No conozco una relación estándar de compresión y descompresión, ya que esto realmente depende de los datos y los recursos del servidor. Suponiendo que todos los demás recursos sean iguales, la descompresión es generalmente más rápida ya que implica menos trabajo computacional. La estimación en el peor de los casos podría ser la misma que el tiempo de compresión inicial.

Sin embargo, para ganar fácilmente recomendaría usarpigz, una implementación paralela gzipque aprovecha múltiples procesadores y núcleos. A menos que solo tenga un núcleo disponible, pigzdebería reducir sustancialmente el tiempo de compresión y descompresión.

Uso de muestra con tar:

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

Para más ejemplos, verStackOverflow: uso de múltiples núcleos para compresión/descompresión tar+gzip/bzip.

Respuesta2

No existe una proporción definida en la misma máquina, y el uso de varias máquinas (de diferentes tipos) definitivamente puede tener un impacto. La compresión y descompresión involucran activamente el almacenamiento de datos (por ejemplo, un "disco duro" o "SSD"), el procesador y otros componentes como la memoria.

Como generalización excesiva, descomprimir es bastante rápido e incluso puede ser más rápido que copiar la cantidad de datos sin comprimir. La compresión también puede ser igualmente rápida, y para algo como la compresión RLE puede serlo. Para zip y gzip, las implementaciones comunes son más lentas que la descompresión y, a menudo, puede obtener otra efectividad de compresión del 5 % al 15 % si elige opciones de compresión más agresivas que pueden tardar entre 2 y 4 veces más.

La diferencia se debe en gran medida a que la compresión implica algunas pruebas (a veces consideradas como "adivinanzas"), y algunas pruebas son infructuosas. Por el contrario, la descompresión generalmente sigue un proceso preestablecido, por lo que es relativamente más rápido.

información relacionada