Est-il plus lent de copier deux fichiers en même temps que de copier l'un après l'autre? [dupliquer]

15

Mon patron disait qu'il fallait plus de temps pour copier deux fichiers en même temps que pour faire l'un puis l'autre parce que le disque dur devait continuer de commuter la tête entre les deux emplacements sur le disque. Est-ce vrai? Il me semble que le système d'exploitation devrait être suffisamment intelligent pour résoudre ce problème (c'est-à-dire qu'il devrait savoir les copier séquentiellement). Est-ce vrai lors de la copie sur un lecteur connecté à un port USB?

EDIT: y a-t-il d'autres facteurs concernant le système de fichiers qui entrent en ligne de compte? Par exemple, cela fait-il une différence de copier 1 répertoire contenant 10 fichiers par rapport à copier 10 fichiers de partout sur le disque? Je me pose des questions sur un seul support source et un seul support de destination (pas de lecture à partir de plusieurs lecteurs).

Celeritas
la source
Parfois, parfois non.
Daniel R Hicks
Je pense que cette question pourrait bénéficier d'une référence réelle, plutôt que des suppositions éclairées de la plupart des répondeurs ici. Quelqu'un avait un disque tournant et du temps libre? Je crois que pour les SSD, les différences sont probablement négligeables; tandis que pour le disque dur, je pense que la réponse pourrait aller d'une pénalité de performance majeure à un léger avantage en fonction du nombre et de la taille des fichiers et des performances relatives des disques source et cible (s'ils sont différents).
Lie Ryan
1
De plus, si vous transférez via USB2, il n'y aura probablement aucune différence; la vitesse de lecture typique du disque dur est d'environ 50 à 100 Mo / s tandis que la vitesse maximale de l'USB2 est de 32 Mo / s, de sorte que le goulot d'étranglement sera probablement le port USB plutôt que la caractéristique du disque dur en raison de la mise en mémoire tampon. En d'autres termes, il est difficile de dire dans un sens ou dans l'autre.
Lie Ryan
@LieRyan c'est dommage que vous n'ayez pas posté le commentaire comme réponse car il correspond le mieux à la question que j'avais l'intention de poser concernant la copie d'un disque dur vers un disque dur externe par USB 2.
Celeritas

Réponses:

12

Je vais vous reporter à cette question . Il semble que l'exécution simultanée de deux opérations de copie sur le même disque (bien que démarrées par des opérations de copie distinctes) prendrait en effet plus de temps en raison de la latence générée par la tête effectuant des allers-retours entre les opérations concurrentes.

Si, cependant, les opérations de copie sont démarrées simultanément, la grande majorité des systèmes d'exploitation modernes sont, comme vous l'avez dit, assez intelligents pour mettre en file d'attente les transferts les uns après les autres, et devraient produire un temps de copie un peu plus rapide.

Il existe apparemment un certain nombre d'applications disponibles pour forcer les opérations de copie de fichiers à mettre en file d'attente et à s'exécuter séquentiellement, telles que Teracopy et FastCopy

Cependant, effectuer des opérations de copie simultanées sur plusieurs volumes physiques est une tout autre affaire. Tout comme le transfert de fichiers via d'autres protocoles.

En ce qui concerne votre question sur la copie sur un lecteur connecté à un port USB, cela dépend fortement du type de mémoire que le lecteur utilise et des spécifications USB utilisées (certainement un goulot d'étranglement notable pour USB 1.0 et 2.0), ainsi que du précédent facteurs mentionnés concernant le volume de la source de copie.

bosco
la source
1
cela ne dépend-il pas également de la capacité du processeur du système?
Raghunandan
@Raghunandan Un point juste - je crois que cela dépend totalement des circonstances. Plusieurs cœurs / hyperthreading amélioreraient certainement les vitesses de copie si la lecture de données à partir de plusieurs volumes physiques ou SSD / RAMDisk, mais dans le scénario d'un seul disque dur, les facteurs limitants de la vitesse de copie résideraient probablement encore dans les vitesses d'E / S du disque et la présence de tête -la latence du mouvement (je suis sûr qu'il doit y avoir un terme plus approprié pour ça ...).
bosco
3
@Raghunandan - Peut-être pas autant le système d'exploitation que le système de fichiers (NTFS vs EXT4).
Enigma
2
@Raghunandan PC-24000 DDR3 a une bande passante de 24 Go / s et ce n'est toujours pas une limite pour les processeurs modernes, donc je ne pense pas que ce soit vraiment une question de CPU - même si les opérations sur disque dur seraient 100 fois moins efficaces que les opérations sur RAM , Le processeur peut toujours gérer au moins 245 Mo / s et c'est toujours plus que la bande passante du SSD le plus rapide.
gronostaj
1
@Raghunandan votre partition linux peut également se trouver sur une partie plus rapide du disque que la partition Windows (par ex. En dehors de l'intérieur)
ernie
16

Il y a beaucoup de facteurs ici qui pourraient affecter cela.

  • Lecteur source - est-ce un disque en rotation ou un SSD? Si le disque tourne, la disposition des fichiers peut affecter les performances. Comme les deux fichiers se trouvent probablement sur différentes parties du disque, cela entraînera des pénalités de recherche de tête. Comme vous l'avez dit, si vous sélectionnez deux fichiers à la fois et lancez la copie de cette façon, le système d'exploitation traitera les copies de manière séquentielle.
  • Disposition des fichiers - la fragmentation des fichiers (à la fois sur la source et la destination) peut affecter les performances des disques non SSD
  • Destination - si vous avez deux flux d'écriture écrivant sur une seule cible, vous êtes de retour au problème de recherche de tête (encore une fois, en supposant qu'il ne s'agit pas d'un SSD), et vous pouvez fortement entrelacer les fichiers. J'avais l'habitude de travailler pour une entreprise qui faisait du stockage haute performance, et l'un des gros problèmes pour eux était le nombre de flux vidéo en temps réel qu'ils pouvaient lire ou écrire (la vidéo 2k nécessite environ 300 Mo par seconde). Alterner les écritures ralentira le processus de copie et ralentira également la lecture du fichier. Bien sûr, si votre disque est fragmenté pour démarrer, votre fichier sera quand même écrit entrelacé.
  • source / cible unique / multiple - selon que vos fichiers proviennent tous d'un seul lecteur ou sont tous écrits sur un seul lecteur, le problème de recherche de tête pourrait être plus ou moins
  • taille du fichier - pour les très petits fichiers, le problème de recherche de tête n'aura pas d'importance, car la tête devra de toute façon rechercher le fichier suivant (ce qui signifie qu'au lieu de faire des allers-retours entre les fichiers, la tête lira les fichiers de manière séquentielle)

Quant à savoir si le système d'exploitation est assez intelligent pour résoudre ce problème, en général, ils le sont. Autrement dit, si vous copiez plusieurs fichiers simultanément (par exemple, pensez à sélectionner plusieurs fichiers à la fois et faites glisser-déposer).

Bien sûr, si vous lancez deux cpcommandes, cela va exécuter les deux commandes, ou dans Windows si vous copiez / collez des fichiers séparés et obtenez deux fenêtres de progression de "copie" à l'écran, l'optimisation ne se produira pas. Dans ce cas, vous avez explicitement indiqué au système d'exploitation que vous souhaitez exécuter les deux copies simultanément, donc il ne va pas décider qu'une copie est plus importante que l'autre et commencer à les mettre en file d'attente.

ernie
la source
+1 La seule chose qui manque est la configuration RAID , évoquée avec "source / cible unique / multiple".
David Harkness
1
-1 la plupart de ce qui est dit n'est pas lié à la question
Celeritas
1

Si vous sélectionnez et copiez plusieurs fois - soit à partir d'une interface graphique, soit en utilisant une commande telle que "copier C: \ dossier * D: \ dossier \" - alors les fichiers SERONT copiés séquentiellement de toute façon, rendant la question théorique.

Si vous copiez certains fichiers et pendant leur copie, commencez à copier plus de fichiers - soit par deux opérations distinctes de l'interface graphique, soit par deux commandes distinctes exécutées simultanément comme "cp -r / usr / bin / / opt / bin / & cp -r / usr / local / bin / / opt / local / bin / "- alors vos performances diminueront certainement - peut-être un peu (lecteur SSD haut de gamme, gros fichiers dans les deux opérations de copie) ou peut-être par un TON (disque tournant, fichiers relativement petits dans une ou les deux opérations). De meilleurs systèmes d'exploitation peuvent atténuer la dégradation des performances dans une certaine mesure - par exemple, les noyaux Linux modernes utilisent le planificateur d'E / S CFQ (Completely Fair Queuing), qui, dans une certaine mesure, bloque les opérations par lots pour augmenter l'efficacité - mais vous continuerez à prendre un succès de performance. Dans certains cas, le coup peut être ÉNORME,

TL; DR - exécutez une seule opération de copie à la fois, quel que soit le nombre de fichiers individuels inclus dans cette opération , si vous êtes préoccupé par les performances.

Jim Salter
la source