Gibt es Vor- / Nachteile der Option / j Robocopy (ungepuffertes Kopieren)?

9289
Clay Nichols

Robocopy verfügt über eine /JBefehlszeilenoption, die zum Kopieren großer Dateien empfohlen wird (es wird mit ungepufferten E / A-Vorgängen kopiert).

Welche (wenn überhaupt) Nachteile gibt es? Warum ist dies nicht standardmäßig aktiviert? (Das hat mich veranlasst, zu denken, dass es Nachteile gibt.)

7
Ich kann mir einige Performance-Nachteile mit vielen ** kleinen ** Dateien vorstellen. Aber bei großen Dateien? Nicht viele. Es könnte langsamer sein. Ich erwarte, dass es viel vorhersehbarer ist, wenn Sie an ein langsames Ziel kopieren. Mal sehen, welche Antworten wir von anderen Benutzern bekommen, da ich einfach nur atm erraten habe :) Hennes vor 7 Jahren 0
Hmmm ... wenn es auch bei großen Dateien langsamer sein könnte, frage ich mich, was die VORTEILE sind. Ich habe die Frage entsprechend aktualisiert. Clay Nichols vor 7 Jahren 0
Wenn ich (mit Windows Explorer, nicht mit Robocopy) von einer schnellen Festplatte auf ein externes (langsames) USB-Laufwerk eines Systems mit 18 GB RAM kopiere (lesen: viel Speicherplatz, der als Plattenpuffer verwendet werden kann), kam ich häufig in Situationen vor, in denen Quelldateien gelesen wurden Das Aufheben der Bereitstellung des langsamen USB2-Datenträgers dauerte etwa 45 Minuten, während der Cache geleert wurde. Ich wünschte, ich hätte den Cache-Speicher dort begrenzt. Dies könnte nur die Option für die Robocopy-Funktion sein. Auf jeden Fall wird es für beide von uns interessant sein, zu sehen, welche Antworten auftauchen. Hennes vor 7 Jahren 0

3 Antworten auf die Frage

5
Alejandro C De Baca

Tolle Frage.

Ungepufferte E / A ist eine einfache Dateikopie von einem Quellspeicherort zu einem Zielspeicherort. Durch gepufferte E / A wird die einfache Kopie erweitert, um sie für spätere Lesevorgänge (und Schreibvorgänge in derselben Datei) zu optimieren, indem die Datei in den Dateisystemcache (einen Bereich des virtuellen Speichers ) kopiert wird. Beim gepufferten E / A-Vorgang tritt beim ersten Zugriff auf die Datei ein Leistungsabfall auf, da die Datei in den Speicher kopiert werden muss. Da der Speicherzugriff jedoch schneller ist als der Zugriff auf die Festplatte, sollte der nachfolgende Dateizugriff schneller sein. Das Betriebssystem kümmert sich um das Synchronisieren von Dateischreibvorgängen auf die Festplatte, und Lesevorgänge können direkt aus dem Speicher abgerufen werden.

Der Verwendungshinweis erwähnt große Dateien gegenüber gepufferten E / A, weil:

  1. Die Vorlaufkosten sind teuer. Der Leistungsnachteil bei gepufferten E / A-Vorgängen ist bei großen Dateien erheblich schlechter.
  2. Sie bekommen wenig zurück. Große Dateiblöcke bleiben ohnehin nicht lange im Cache, es sei denn, Sie haben eine Menge Speicherplatz im Verhältnis zur Dateigröße.
  3. Die I / O der Festplatte wird möglicherweise nicht vermieden. Das Lesen und Schreiben großer Dateidatenblöcke erhöht die Wahrscheinlichkeit, dass Platten-E / A erforderlich sind.
  4. Sie müssen wahrscheinlich sowieso nicht puffern. Auf große Dateien wird in der Praxis häufig weniger häufig zugegriffen als auf kleinere Dateien.

Es gibt also einen Kompromiss, der aber für Sie angemessen ist, hängt von Ihrem speziellen Fall ab. Wenn Sie eine Reihe von Dateien zusammenpacken und die ZIP-Datei an ein Sicherungsziel senden, ist ungepuffert der Weg. Kopieren einer Reihe von Dateien, die gerade geändert wurden? Puffer sollte schneller sein.

Beachten Sie schließlich, dass die Dateigröße nicht der einzige Faktor für die Entscheidung zwischen gepuffert und ungepuffert ist. Wie bei jedem Cache ist der Dateisystemcache schneller, aber kleiner als die Quelle dahinter. Sie erfordert eine Cache-Ersetzungsstrategie, die bestimmt, wann Elemente entfernt werden müssen, um Platz für neue Elemente zu schaffen. Es verliert seinen Vorteil, wenn Gegenstände, auf die häufig zugegriffen wird, geräumt werden. Wenn Sie beispielsweise Home-Verzeichnisse eines Benutzers mit einem separaten Speicherort synchronisieren (dh, während Benutzer die Dateien aktiv verwenden), würden gepufferte E / A-Vorgänge von bereits im Cache befindlichen Dateien profitieren, können jedoch den Cache vorübergehend mit veralteten Dateien verschmutzen ; Auf der anderen Seite würde ungepuffert auf bereits gespeicherte Dateien verzichten. Kein klarer Gewinner in einem solchen Fall.

Hinweis: Dies gilt auch für xcopy /J

Weitere Informationen finden Sie im Microsoft Blog von The Performance Team .

1
Rüdiger

Ich habe folgendes versucht:

Wenn Sie von einem schnellen Gerät (NAS über Gigabit-Ethernet) auf ein anderes schnelles Gerät (USB3-Disk) kopieren

  • ohne / J: Die Daten werden in einen Puffer eingelesen und danach geschrieben, sodass entweder das Netzwerk oder die Festplatte im Leerlauf ist
  • Mit / J: Die Daten werden ohne Wartezeit gelesen und geschrieben, sodass das Netzwerk und die Festplatte gleichzeitig verwendet werden

Ich würde vorschlagen, diese Option zu verwenden.

0
user778642

Wenn Sie über das WAN kopieren, empfehle ich, die Option / J NICHT für große Dateien zu aktivieren, da Ihre durchschnittliche Kopierzeit erheblich ansteigt. Die Dateien, die ich kopiert habe, lagen zwischen 500 MB und 23 GB.

Auf einer 50-Mbit / s-Leitung habe ich durchschnittlich 43,5 Mbit / s (sonstiger Verkehr und Overhead) erzielt, während ich OHNE / J nie unter 32 Mbit / s sank. Mit / J lag mein Durchschnitt bei etwa 25 Mbps ... Wenn ich Perfmon betrachte, konnte ich unten große Gipfel und Täler sehen.

Hoffe, das hilft jemandem.