Necesito copiar algunos datos que incluyen 900,000 pequeños archivos con un total de alrededor de 30 gigabytes en una computadora con Windows. Sin embargo, debe poder copiarse y configurarse en menos de una hora y media, y puede tomar más de 5 horas copiar un disco duro USB, principalmente debido a la gran cantidad de archivos. ¿Existe una forma mejor / más rápida de lidiar con esto, como hacer algún tipo de copia en bloque? Gracias
usb-storage
file-transfer
Joe Lyga
fuente
fuente
Respuestas:
Con una gran cantidad de archivos, es mejor crear un archivo tar para que tenga menos archivos con los que lidiar. Si está utilizando un disco duro externo USB 2.0, debería usar USB 3.0, eSATA o una red local rápida.
¿Cuál es su sistema operativo de origen? Si sus dos sistemas operativos fueran Linux, podría canalizar los archivos a través de tar, gzip y ssh a la máquina de destino. También podría instalar cygwin en Windows para obtener este tipo de funcionalidad para Windows.
Actualización: la publicación
" Uso de Tar y SSH para mejorar las velocidades de SCP " describe los comandos necesarios para enviar contenido tar a través de ssh.
fuente
Si el disco duro se puede quitar de la interfaz USB y en SATA / ATA, lo instalaría en la computadora de destino. Obtendrá velocidades de transferencia mucho más rápidas, como otros han notado. Para copiar, suponiendo que esté en Windows, haría una ROBOCOPIA simple. Es casi tan rápido como realmente puedes esperar, aunque hay otras alternativas.
Sin embargo, trataría de evitar comprimir todos estos archivos, hay una buena posibilidad de que el tiempo para comprimir y mover exceda simplemente mover los archivos.
* Se agregó la opción / MT para robocopy. Puede acelerar enormemente las transferencias cuando se encuentra en un entorno de subprocesos múltiples.
fuente
/MT
Ayudará en las transferencias locales de un solo disco, o causará una agitación masiva del disco? Es común para copiar grandes recursos compartidos entre servidores, pero a menudo tienen latencia adicional debido a que pasan por la red y mejoran las IOPS de las matrices RAID.Puede intentar tomar una imagen de toda la carpeta / unidad
En los sistemas Linux, puede usar
dd
para obtener una copia sin formato del sistema de archivos y copiarlo como un solo archivo grande.Para extraer la imagen en Windows, es posible que necesite instalar cygwin o un programa que pueda procesar
dd
imágenes.fuente
Instale el disco donde residen los archivos de origen en la computadora que está configurando y transfiera el disco a disco. Olvídate de USB. Incluso transferir a través del cable (conectar las máquinas en red) sería más rápido que el USB (suponiendo usb 2.0 y 1Gbps NIC). Si este es un evento recurrente, busque replicación en su lugar.
fuente
Usar
rsync
conz
opción.Esto aumentará la velocidad de transferencia a través de la red. Lo más probable es que no sea útil en su caso.
Después de leer un poco más, me di cuenta de que, no debemos usar el indicador '-z' al copiar datos de un disco duro local a otro, aumenta la sobrecarga. Gracias por comentar de @FakeName.
fuente
Te estás acercando rápidamente a las limitaciones de tu disco duro. De hecho, con las unidades de productos básicos actuales, es imposible mejorar su tiempo de transferencia con una operación de copia por archivo.
Suponiendo que cada archivo requiere 1 búsqueda HD y el tiempo de búsqueda es de 7 ms (lo cual es un poco idealizado, de manera realista, cada archivo requerirá dos búsquedas, a menos que el mapa de bits de volumen se almacene en caché en ram), en el mejor de los casos, administrará ~ 142 archivos / seg ( \ $ \ frac {1000} {7} = 142.8 ... \ $).
Con las especificaciones OP (30 GB, 900,000 archivos) que son ~ 33K por archivo (\ $ \ frac {30,000,000k} {900,000} = ~ 33.3 ... \ $. 33KB * 142 = 4.68 MBps.
El tiempo mínimo para transferir 30 GB a 5 MBps es de ~ 1 hora, 40 minutos (\ $ \ frac {30,000} {5} = = 6,000 \ $ segundos. \ $ \ Frac {6,000} {60} = 100 \ $ minutos o 1:40 horas)
Por lo tanto, es imposible lograr una velocidad mejor que ~ 5 MBPS, y eso es con una unidad ideal (y menos operaciones de búsqueda. Esto es para una búsqueda por archivo. Realmente, serían dos). Estás completamente limitado por el rendimiento del disco.
La única forma de mejorar el rendimiento es copiar el sistema de archivos completo y la partición secuencialmente.
dd
Puede hacer esto en Linux.¿Que estás tratando de hacer?
fuente
Intente 7zip para archivar los archivos en un solo archivo. Si es posible, use WLAN con una conexión ad hoc a una computadora portátil.
fuente
En relación con la respuesta de @arcyqwery, es posible que pueda comprimirlo y, simultáneamente, convertirlo en un archivo grande. Esto acelerará un poco el proceso.
También podría valer la pena usar un programa como TeraCopy , ya que generalmente es más rápido que el rendimiento predeterminado de copia de Windows. Sin embargo, debe probar con circunstancias similares en su caso para verificar.
fuente
Tuve un caso similar. Desactivé el antivirus, la velocidad de copia cambió de 3 MB / sa 12 MB / s.
fuente