17 votos

¿Qué es más rápido, y por qué: transferir varios archivos pequeños o pocos archivos grandes?

Pronto tendré una carpeta con miles de archivos, cada uno del orden de unos pocos KB. Necesitaré transferirlos a través de una red de Windows de un recurso compartido de UNC a otro. En general, ¿es más rápido simplemente copiar los archivos en masa, o sería más rápido comprimirlos en un zip (por ejemplo, usando 7zip en el modo más rápido) y enviar uno o unos pocos archivos grandes? ¿O no hay ninguna diferencia en la práctica?

37voto

Jon Cahill Puntos 456

Es más rápido transferir un solo archivo grande en lugar de muchos archivos pequeños debido a los gastos generales de la negociación de la transferencia. La negociación se hace para cada archivo, por lo que transferir un solo archivo debe hacerse una vez, transferir n archivos significa que debe hacerse n veces.

Te ahorrarás mucho tiempo si cierras la cremallera antes de la transferencia.

5voto

Jader Dias Puntos 714

Jon Cahill es muy correcto, un solo archivo será más rápido. Sin embargo, vale la pena tener en cuenta que si hay alguna inestabilidad en la conexión, los archivos individuales (o grupos medianos en archivos zip) pueden ser mejores, porque si la transferencia falla tendrás que empezar de nuevo, mientras que con múltiples archivos sólo tendrás que volver a hacer el último archivo iniciado

2voto

Dave Marshall Puntos 1771

Muchos archivos pequeños también serán más caros de escribir en el sistema de archivos que un solo archivo grande. Necesita hacer cosas como:

  • Compruebe que el nombre del archivo es único
  • Escriba la entrada de la tabla de archivos

A medida que se obtienen más y más archivos en un directorio, esto puede resultar bastante costoso. Y cada uno de estos pasos puede añadir latencia al proceso de copia y ralentizarlo todo.

0voto

jldugger Puntos 7490

El tamaño medio de los paquetes en relación con el tamaño medio de los archivos es probablemente crítico aquí. Con muchos archivos pequeños puede que te encuentres enviando muchos paquetes pequeños. Los paquetes pequeños todavía incurren en gastos de TCP; como resultado, podrías terminar duplicando la cantidad de tráfico.

Los sistemas modernos, e incluso los relativamente antiguos, pueden enviar múltiples archivos a través de una única conexión TCP, evitando los costes de ese apretón de manos.

0voto

Jacobbus Puntos 60

Justo lo que he encontrado, pero si quieres una transferencia más rápida, inicia la transferencia desde el ordenador local, y copia a la unidad local.

Es decir, copia. \computer1\myshare a c: \files\myshare no uses un tercer ordenador y copia desde \computer1\myshare a \computer2\mynewshare.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: