GNU/Linux >> Tutoriales Linux >  >> Linux

Hora de comprimir archivos muy grandes (100G)

Puedes cambiar la velocidad de gzip usando --fast --best o -# donde # es un número entre 1 y 9 (1 es el más rápido pero con menos compresión, 9 es el más lento pero con más compresión). Por defecto gzipruns en el nivel 6.


La razón por la que tar toma tan poco tiempo en comparación con gzip es que hay muy poca sobrecarga computacional al copiar sus archivos en un solo archivo (que es lo que hace). gzip, por otro lado, en realidad está usando algoritmos de compresión para reducir el tamaño del archivo tar.

El problema es que gzip está restringido (como descubrió) a un solo hilo.

Ingrese pigz, que puede usar varios subprocesos para realizar la compresión. Un ejemplo de cómo usar esto sería:

tar -c --use-compress-program=pigz -f tar.file dir_to_zip

Hay un buen resumen sucinto de la opción --use-compress-program en un sitio hermano.


Parece que estoy usando una sola CPU aproximadamente al 100 %.

Eso implica que no hay un problema de rendimiento de E/S, sino que la compresión solo usa un subproceso (que será el caso con gzip).

Si logra obtener el acceso/acuerdo necesario para instalar otras herramientas, entonces 7zip también admite varios subprocesos para aprovechar las CPU de varios núcleos, aunque no estoy seguro de si eso se extiende al formato gzip así como al suyo propio.

Si está limitado a usar solo gzip por el momento y tiene varios archivos para comprimir, puede intentar comprimirlos individualmente; de ​​esa manera, usará más de esa CPU multinúcleo al ejecutar más de un proceso en paralelo. Sin embargo, tenga cuidado de no exagerar porque tan pronto como se acerque a la capacidad de su subsistema de E/S, el rendimiento caerá precipitadamente (más bajo que si estuviera usando un proceso/subproceso) a medida que la latencia de los movimientos de la cabeza se vuelve significativa. cuello de botella.


Linux
  1. Cómo comprimir varios archivos en Linux

  2. Cómo comprimir y extraer archivos y directorios en Linux usando gzip y bzip2

  3. Descomprimir todos los archivos en un directorio

  4. Contar líneas en archivos grandes

  5. Vuelva a empaquetar archivos 7z para comprimir archivos en Linux

Cómo cambiar el nombre de los archivos usando la línea de comandos en Linux

Cómo mover una gran cantidad de archivos en Linux

Cómo copiar una gran cantidad de archivos en Linux

Cómo Gzip archivos grandes (100GB+) más rápido en Linux

Transferir archivos usando WinSCP

Cómo comprimir un archivo en Linux