Gibt es Vor- / Nachteile für die Option / j Robocopy (ungepuffertes Kopieren)?


12

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

Welche (wenn überhaupt) Nachteile gibt es? Gibt es einen Grund, warum dies nicht standardmäßig aktiviert ist? (Das hat mich denken lassen, dass es Nachteile geben könnte.)


Ich kann mir einige Leistungseinbußen bei vielen kleinen Dateien vorstellen . Aber mit großen Dateien? Nicht viele. Es könnte langsamer sein. Ich erwarte, dass es beim Kopieren an ein langsames Ziel viel vorhersehbarer ist. Mal sehen, welche Antworten wir von anderen Benutzern bekommen, da ich nur atm errate :)
Hennes

Hmmm ... wenn es auch bei großen Dateien langsamer sein könnte, frage ich mich, was die VORTEILE dann sind. Ich habe die Frage aktualisiert, um dies widerzuspiegeln.
Clay Nichols

Wenn ich (mit Windows Explorer, nicht Robocopy) von einer schnellen Festplatte auf ein externes (langsames) USB-Laufwerk auf einem System mit 18 GB RAM kopiere (lesen: viel Speicher, der als Festplattenpuffer verwendet werden kann), stieß ich häufig auf Situationen, in denen Quelldateien gelesen wurden Das Entfernen der langsamen USB2-Festplatte dauerte etwa 45 Minuten, während der Cache geleert wurde. Ich wünschte, ich könnte dort einen begrenzten Cache-Speicher haben. Dies könnte nur die Option für die Robokopie sein. Auf jeden Fall wird es für uns beide interessant sein, zu sehen, welche Antworten angezeigt werden.
Hennes

Antworten:


8

Gute Frage.

Ungepufferte E / A ist eine einfache Dateikopie von einem Quellspeicherort zu einem Zielspeicherort. Gepufferte E / A erweitern die einfache Kopie, um sie für zukünftige Lesevorgänge (und Schreibvorgänge) derselben Datei zu optimieren, indem die Datei in den Dateisystem-Cache kopiert wird , der eine Region des virtuellen Speichers darstellt. Bei gepufferten E / A-Vorgängen tritt beim ersten Zugriff auf die Datei eine Leistungseinbuße auf, da die Datei in den Speicher kopiert werden muss. Da der Speicherzugriff jedoch schneller als der Festplattenzugriff ist, sollte der nachfolgende Dateizugriff schneller sein. Das Betriebssystem sorgt für die Synchronisierung 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 Leistungsverlust bei gepufferten E / A ist bei großen Dateien wesentlich schlechter.
  2. Sie bekommen wenig dafür. Große Dateiblöcke bleiben ohnehin nicht lange im Cache, es sei denn, Sie haben im Verhältnis zur Dateigröße eine Menge Speicher.
  3. Festplatten-E / A werden möglicherweise nicht vermieden. Das Lesen und Schreiben großer Dateidatenblöcke erhöht die Wahrscheinlichkeit, dass Festplatten-E / A erforderlich sind.
  4. Sie müssen wahrscheinlich sowieso nicht puffern. Auf große Dateien wird in der Praxis seltener zugegriffen als auf kleinere Dateien.

Es gibt also einen Kompromiss, aber welcher für Sie angemessen ist, hängt von Ihrem speziellen Fall ab. Wenn Sie eine Reihe von Dateien komprimieren und die ZIP-Datei an ein Sicherungsziel übertragen, ist ungepuffert der richtige Weg. Eine Reihe von Dateien kopieren, die gerade geändert wurden? Gepuffert sollte schneller sein.

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

Hinweis: Dies gilt auch für xcopy /J

Weitere Informationen finden Sie im Microsoft Ask The Performance Team-Blog .


1

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 gelesen und danach geschrieben, sodass entweder das Netzwerk oder die Festplatte inaktiv 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

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

Auf einer 50-Mbit / s-Leitung lag der Durchschnitt bei 43,5 Mbit / s (sonstiger Datenverkehr und Overhead), während ich nie unter 32 Mbit / s OHNE / J ging. Mit / J lag mein Durchschnitt bei 25 Mbit / s. Bei Betrachtung von Perfmon konnte ich unten große Gipfel und Täler erkennen.

Hoffe das hilft jemandem.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.