Ist es langsamer, zwei Dateien gleichzeitig zu kopieren als eine nach der anderen? [Duplikat]

15

Mein Chef sagte, es dauert länger, zwei Dateien gleichzeitig zu kopieren, als die eine und die andere, weil die Festplatte ständig den Kopf zwischen den beiden Speicherorten auf der Festplatte wechseln muss. Ist das wahr? Meiner Meinung nach sollte das Betriebssystem intelligent genug sein, um dies zu beheben (dh es sollte wissen, dass es nacheinander kopiert werden muss). Trifft dies zu, wenn Sie auf ein Laufwerk kopieren, das an einen USB-Anschluss angeschlossen ist?

BEARBEITEN: Gibt es andere Faktoren in Bezug auf das Dateisystem, die berücksichtigt werden? Macht es beispielsweise einen Unterschied, 1 Verzeichnis mit 10 Dateien zu kopieren, anstatt 10 Dateien von überall auf der Festplatte zu kopieren? Ich frage mich nur über ein Quellmedium und ein Zielmedium (kein Lesen von mehreren Laufwerken).

Celeritas
quelle
Manchmal manchmal nicht.
Daniel R Hicks
Ich denke, dass diese Frage von einem tatsächlichen Benchmark profitieren könnte, anstatt von den fundierten Vermutungen der meisten Antwortenden. Hat jemand eine sich drehende Scheibe und etwas Freizeit? Ich glaube für SSD sind die Unterschiede wahrscheinlich vernachlässigbar. Ich bin der Meinung , dass die Antwort für Festplatten von erheblichen Leistungseinbußen bis zu möglicherweise geringfügigen Vorteilen reichen kann, abhängig von der Anzahl und Größe der Dateien und der relativen Leistung der Quell- und Zielfestplatten (falls diese unterschiedlich sind).
Lie Ryan
1
Wenn Sie über USB2 übertragen, wird es wahrscheinlich keine Unterschiede geben. Die typische Lesegeschwindigkeit für Festplatten liegt bei 50-100 MB / s, während die maximale Geschwindigkeit von USB2 32 MB / s beträgt. Der Engpass wird wahrscheinlich eher der USB-Anschluss als die Festplatteneigenschaft sein, die durch die Pufferung verursacht wird. Mit anderen Worten, es ist schwierig, die eine oder andere Art zu sagen.
Lie Ryan
@LieRyan Es ist schade, dass Sie den Kommentar nicht als Antwort gepostet haben, da er am besten zu der Frage passt, die ich stellen wollte, was das Kopieren von 1 Festplatte auf 1 externe Festplatte über USB 2
betrifft

Antworten:

12

Ich werde dich aufschieben diese Frage . Es scheint, dass das gleichzeitige Ausführen von zwei Kopiervorgängen auf derselben Festplatte (obwohl durch separate Kopiervorgänge gestartet) in der Tat länger dauern würde, da der Kopf zwischen den konkurrierenden Vorgängen hin und her sucht.

Wenn jedoch die Kopiervorgänge sind gleichzeitig gestartet werden, ist die große Mehrheit der modernen Betriebssysteme, wie Sie sagten, intelligent genug, um die Übertragungen nacheinander in die Warteschlange zu stellen, und sollte eine etwas schnellere Kopierzeit ergeben.

Es gibt anscheinend eine Reihe von Anwendungen, mit denen die Dateikopiervorgänge in die Warteschlange gestellt und nacheinander ausgeführt werden können, z. B. Teracopy und FastCopy

Die gleichzeitige Ausführung von Kopiervorgängen auf mehreren physischen Volumes ist jedoch eine völlig andere Angelegenheit. Ebenso werden Dateien über alternative Protokolle übertragen.

Was das Kopieren auf ein Laufwerk anbelangt, das an einen USB-Anschluss angeschlossen ist, hängt dies stark von der Art des verwendeten Speichers und der verwendeten USB-Spezifikation ab (sicherlich ein nennenswerter Engpass bei USB 1.0 und 2.0) genannten Faktoren in Bezug auf das Quellvolumen der Kopie.

Bosco
quelle
1
hängt das auch nicht von der prozessorfähigkeit des systems ab?
Raghunandan
@ Raghunandan Ein fairer Punkt - ich glaube, es hängt total von den Umständen ab. Mehrere Kerne / Hyperthreading würden sicherlich die Kopiergeschwindigkeit erhöhen, wenn Daten von mehreren physischen Volumes oder SSD / RAMDisk gelesen werden, aber im Szenario einer einzelnen Festplatte würden die begrenzenden Faktoren der Kopiergeschwindigkeit wahrscheinlich immer noch in den E / A-Geschwindigkeiten der Festplatte und dem Vorhandensein des Kopfes liegen - Bewegungslatenz (ich bin mir sicher, dass es dafür einen passenderen Begriff geben muss ...).
Bosco
3
@Raghunandan - Möglicherweise nicht so sehr das Betriebssystem als das Dateisystem (NTFS vs EXT4).
Rätsel
2
@Raghunandan PC-24000 DDR3 hat eine Bandbreite von 24 GB / s und ist für moderne CPUs immer noch keine Grenze. Ich denke also nicht, dass es wirklich um die CPU geht - selbst wenn Festplattenvorgänge 100-mal weniger effektiv wären als RAM-Vorgänge Die CPU könnte immer noch mindestens 245 MB / s verarbeiten, und das ist immer noch mehr als die Bandbreite der schnellsten SSD.
Gronostaj
1
@Raghunandan Ihre Linux-Partition befindet sich möglicherweise auch auf einem schnelleren Teil der Festplatte als die Windows-Partition (z. B. außerhalb v. Innen)
ernie
16

Hier gibt es viele Faktoren, die dies beeinflussen könnten.

  • Quelllaufwerk - dreht sich diese Festplatte oder SSD? Wenn sich die Festplatte dreht, kann das Layout der Dateien die Leistung beeinträchtigen. Da sich die beiden Dateien wahrscheinlich auf verschiedenen Teilen der Festplatte befinden, werden für die Kopfsuche Strafen verhängt. Wie Sie bereits sagten, wenn Sie zwei Dateien gleichzeitig auswählen und das Kopieren auf diese Weise starten, werden die Kopien vom Betriebssystem nacheinander verarbeitet.
  • Dateilayout - Die Fragmentierung der Dateien (sowohl auf der Quelle als auch auf dem Ziel) kann die Leistung von Nicht-SSD-Laufwerken beeinträchtigen
  • Ziel - Wenn zwei Schreibdatenströme auf ein einzelnes Ziel geschrieben werden, kehren Sie zum Problem der Head-Suche zurück (auch hier wird keine SSD vorausgesetzt), und Sie können die Dateien stark verschachteln. Früher arbeitete ich für ein Unternehmen, das Hochleistungsspeicher herstellte, und eines der großen Probleme war, wie viele Echtzeit-Video-Streams sie lesen oder schreiben konnten (für 2k-Videos sind ca. 300 Megabyte pro Sekunde erforderlich). Durch abwechselndes Schreiben wird der Kopiervorgang verlangsamt und das Zurücklesen der Datei verlangsamt. Wenn Ihre Festplatte zum Starten fragmentiert ist, wird Ihre Datei natürlich trotzdem verschachtelt geschrieben.
  • Single / Multiple Source / Target - Je nachdem, ob Ihre Dateien alle von einem Laufwerk stammen oder alle auf ein einzelnes Laufwerk geschrieben wurden, kann das Problem der Kopfsuche mehr oder weniger groß sein
  • Dateigröße - Bei sehr kleinen Dateien spielt das Problem der Kopfsuche keine Rolle, da der Kopf ohnehin nach der nächsten Datei suchen muss (dh, der Kopf liest die Dateien nicht nacheinander, sondern wechselt zwischen den Dateien hin und her).

Wenn das Betriebssystem intelligent genug ist, um dies zu beheben, ist dies im Allgemeinen der Fall. Das heißt, wenn Sie mehrere Dateien gleichzeitig kopieren (z. B. mehrere Dateien gleichzeitig auswählen und per Drag & Drop verschieben).

Wenn Sie zwei cpBefehle auslösen, werden die beiden Befehle ausgeführt. Wenn Sie in Windows separate Dateien kopieren / einfügen und zwei Fortschrittsfenster zum "Kopieren" auf dem Bildschirm anzeigen, wird die Optimierung nicht durchgeführt. In diesem Fall haben Sie dem Betriebssystem ausdrücklich mitgeteilt, dass Sie die beiden Kopien gleichzeitig ausführen möchten, sodass nicht entschieden wird, dass eine Kopie wichtiger ist als die andere, und Sie müssen sie in die Warteschlange stellen.

Ernie
quelle
+1 Es fehlt nur noch die RAID- Konfiguration, die mit "single / multiple source / target" angedeutet ist.
David Harkness
1
-1 Das meiste, was gesagt wird, hat nichts mit der Frage zu
tun
1

Wenn Sie mehrere Dateien auswählen und kopieren - entweder über eine grafische Benutzeroberfläche oder mit einem Befehl wie "copy C: \ folder * D: \ folder \" -, werden die Dateien ohnehin nacheinander kopiert, wodurch die Frage zur Diskussion gestellt wird.

Wenn Sie einige Dateien kopieren und während des Kopierens weitere Dateien kopieren - entweder durch zwei separate Vorgänge in der GUI oder durch zwei separate Befehle, die gleichzeitig ausgeführt werden, wie z. B. "cp -r / usr / bin / / opt / bin / & cp -r / usr / local / bin / / opt / local / bin / "- dann wird Ihre Leistung mit ziemlicher Sicherheit sinken - möglicherweise ein wenig (High-End-Solid-State-Laufwerk, große Dateien in beiden Kopiervorgängen) oder möglicherweise durch eine TON (sich drehende Festplatte, relativ kleine Dateien in einem oder beiden Vorgängen). Bessere Betriebssysteme können die Leistungseinbußen bis zu einem gewissen Grad mindern - moderne Linux-Kernel verwenden beispielsweise den CFQ-I / O-Scheduler (Completely Fair Queuing), der Operationen bis zu einem gewissen Grad blockiert, um die Effizienz zu steigern ein Leistungstreffer. In einigen Fällen kann der Treffer riesig sein,

TL; DR - nur eine Kopie laufen Betrieb zu einem Zeitpunkt, und zwar unabhängig davon , wie viele einzelne Dateien werden in diesem enthalten Betrieb , wenn Sie über die Leistung besorgt sind.

Jim Salter
quelle