¿Es más lento copiar dos archivos al mismo tiempo que copiar uno después del otro? [duplicar]

15

Mi jefe decía que lleva más tiempo copiar dos archivos al mismo tiempo que hacer uno y luego el otro porque el disco duro tiene que seguir cambiando la cabeza entre las dos ubicaciones en el disco. ¿Es esto cierto? Me parece que el sistema operativo debe ser lo suficientemente inteligente como para solucionar esto (es decir, debe saber copiarlos secuencialmente). ¿Es esto cierto cuando se copia a una unidad conectada a un puerto USB?

EDITAR: ¿hay otros factores relacionados con el sistema de archivos que los factores? Por ejemplo, ¿hace una diferencia copiar 1 directorio que contiene 10 archivos versus copiar 10 archivos de todo el disco? Me pregunto solo sobre un medio de origen y un medio de destino (sin lectura de múltiples unidades).

Celeritas
fuente
A veces, a veces no.
Daniel R Hicks
Creo que esta pregunta podría beneficiarse de un punto de referencia real, en lugar de las conjeturas educadas por la mayoría de los que respondieron aquí. ¿Alguien tenía un disco giratorio y algo de tiempo libre? Creo que para SSD, las diferencias probablemente sean insignificantes; mientras que para el disco duro, creo que la respuesta podría variar desde una penalización de rendimiento importante hasta un posible beneficio leve dependiendo de la cantidad y el tamaño de los archivos y el rendimiento relativo de los discos de origen y destino (si son diferentes).
Mentira Ryan
1
Además, si está transfiriendo a través de USB2, entonces probablemente no habrá diferencias; la velocidad típica de lectura del disco duro es de alrededor de 50-100 MB / s, mientras que la velocidad máxima de USB2 es de 32 MB / s, por lo que es probable que el cuello de botella sea el puerto USB en lugar de la característica del disco duro debido al almacenamiento en búfer. En otras palabras, es difícil decir de una forma u otra.
Mentira Ryan
@LieRyan es una lástima que no hayas publicado el comentario como respuesta porque se ajusta mejor a la pregunta que tenía la intención de
hacerte

Respuestas:

12

Te aplazaré a esta pregunta . Parece que ejecutar dos operaciones de copia en el mismo disco al mismo tiempo (aunque se inició a través de operaciones de copia separadas) de hecho tomaría más tiempo como resultado de la latencia generada por la cabeza que busca entre las operaciones de la competencia.

Sin embargo, si las operaciones de copia se inician simultáneamente, la gran mayoría de los sistemas operativos modernos son, como usted dijo, lo suficientemente inteligentes como para poner en cola las transferencias una tras otra, y deberían producir un tiempo de copia algo más rápido.

Aparentemente, hay varias aplicaciones disponibles para forzar que las operaciones de copia de archivos se pongan en cola y se ejecuten secuencialmente como Teracopy y FastCopy

Sin embargo, realizar operaciones de copia concurrentes en múltiples volúmenes físicos es otra cuestión completamente distinta. Como es transferir archivos a través de protocolos alternativos.

Con respecto a su pregunta sobre la copia a una unidad conectada a un puerto USB, depende en gran medida del tipo de memoria que utiliza la unidad y la especificación USB que se utiliza (sin duda un cuello de botella notable para USB 1.0 y 2.0), así como el anterior factores mencionados con respecto al volumen de origen de la copia.

bosco
fuente
1
¿eso tampoco depende de la capacidad del procesador del sistema?
Raghunandan
@ Raghunandan Un punto justo: creo que depende totalmente de las circunstancias. Múltiples núcleos / hyperthreading ciertamente mejorarían las velocidades de copia si se leen datos de múltiples volúmenes físicos o SSD / RAMDisk, pero en el escenario de un solo HDD, los factores limitantes de la velocidad de copia probablemente aún residirían en las velocidades de E / S del disco y la presencia de cabezales -latencia de movimiento (estoy seguro de que debe haber un término más apropiado para eso ...).
bosco
3
@Raghunandan: podría no ser tanto el sistema operativo como el sistema de archivos (NTFS frente a EXT4).
Enigma
2
@Raghunandan PC-24000 DDR3 tiene un ancho de banda de 24 GB / sy todavía no es un límite para las CPU modernas, por lo que no creo que sea realmente una cuestión de CPU, incluso si las operaciones de HDD serían 100 veces menos efectivas que las operaciones de RAM , La CPU aún podría manejar al menos 245 MB / sy aún más que el ancho de banda de SSD más rápido.
gronostaj
1
@Raghunandan su partición de Linux también puede estar en una parte más rápida del disco que la partición de Windows (por ejemplo, fuera v. Adentro)
ernie
16

Aquí hay muchos factores que podrían afectar esto.

  • Unidad de origen: ¿es este disco giratorio o SSD? Si gira el disco, el diseño de los archivos podría afectar el rendimiento. Como es probable que los dos archivos se encuentren en diferentes partes del disco, esto incurrirá en penalizaciones por búsqueda de personal. Como dijo, si selecciona dos archivos a la vez e inicia la copia de esa manera, el sistema operativo manejará las copias secuencialmente.
  • Diseño del archivo: la fragmentación de los archivos (tanto en el origen como en el destino) podría afectar el rendimiento de las unidades que no son SSD
  • Destino: si tiene dos secuencias de escritura que escriben en un solo objetivo, entonces vuelve al problema de búsqueda de cabeza (nuevamente, suponiendo que no es un SSD), y podría intercalar fuertemente los archivos. Solía ​​trabajar para una empresa que hacía almacenamiento de alto rendimiento, y uno de los grandes problemas para ellos era la cantidad de secuencias de video en tiempo real que podían leer o escribir (el video 2k requiere ~ 300 megas por segundo). Alternar las escrituras ralentizará el proceso de copia y también hará que la lectura del archivo sea más lenta. Por supuesto, si su disco está fragmentado para comenzar, su archivo se escribirá intercalado de todos modos.
  • fuente / destino único / múltiple: dependiendo de si todos sus archivos provienen de una unidad o si todos están escritos en una sola unidad, el problema de búsqueda de cabeza podría ser más o menos
  • tamaño de archivo: para archivos realmente pequeños, el problema de búsqueda de cabeza no importará, ya que la cabeza necesitaría buscar el siguiente archivo de todos modos (lo que significa que en lugar de ir y venir entre archivos, la cabeza leería los archivos secuencialmente)

En cuanto a si el sistema operativo es lo suficientemente inteligente como para solucionar esto, en general, lo son. Es decir, si copia varios archivos simultáneamente (por ejemplo, piense en seleccionar varios archivos a la vez y arrastre y suelte).

Por supuesto, si inicia dos cpcomandos, ejecutará los dos comandos, o en Windows si copia / pega archivos separados y obtiene dos ventanas de progreso de "copia" en la pantalla, entonces la optimización no ocurrirá. En este caso, le ha dicho explícitamente al sistema operativo que desea ejecutar las dos copias simultáneamente, por lo que no va a decidir que una copia es más importante que la otra y comenzar a ponerlas en cola.

ernie
fuente
+1 Lo único que falta es la configuración RAID , aludida con "origen / destino único / múltiple".
David Harkness
1
-1 la mayor parte de lo que se dice no está relacionado con la pregunta
Celeritas
1

Si selecciona y copia varias veces, ya sea desde una GUI o mediante el uso de un comando como "copiar C: \ carpeta * D: \ carpeta \", los archivos se copiarán secuencialmente de todos modos, lo que hará que la pregunta sea discutible.

Si copia algunos archivos, y mientras están copiando, comience a copiar más archivos, ya sea mediante dos operaciones separadas desde la GUI o mediante dos comandos separados que se ejecutan simultáneamente como "cp -r / usr / bin / / opt / bin / & cp -r / usr / local / bin / / opt / local / bin / ", entonces su rendimiento seguramente disminuirá, tal vez un poco (unidad de estado sólido de alta gama, archivos grandes en ambas operaciones de copia) o tal vez una TON (disco giratorio, archivos relativamente pequeños en una o ambas operaciones). Los mejores sistemas operativos pueden mitigar la penalización del rendimiento hasta cierto punto, por ejemplo, los núcleos modernos de Linux usan el programador de E / S CFQ (Colas completamente justas), que en cierta medida bloqueará las operaciones por lotes para aumentar la eficiencia, pero aún así tomará Un gran éxito. En algunos casos, el golpe puede ser ENORME,

TL; DR: solo ejecute una operación de copia a la vez, independientemente de cuántos archivos individuales se incluyan en esa operación , si le preocupa el rendimiento.

Jim Salter
fuente