2016-05-20 19 views
0

Ich bin versucht, gleichzeitig zu kopieren und große Datenmengen auf einem Server-System mit Windows Server 2012Lastabhängige Dateiübertragung

Das Schreiben mit hohen Datenraten von mehreren Anwendungen geschieht, schreibt etwa 30% nähern der E/A-Grenzen des lokalen Systems.

Die Übertragung erfolgt zwischen dem lokalen Speicher und einem Netzwerkspeicher mit einer Übertragungsrate von bis zu mehreren GBit.

Da die Anwendungen, die die Daten schreiben, während ihres Betriebs nicht zu wenig Speicher benötigen, muss die Übertragung die Belastung des Quellsystems kennen und sich möglicherweise während des Übertragungsprozesses einschränken.

Es wurde versucht, grundlegende Windows-basierte Tools (x/copy, robocopy) anzuwenden. x/copy ist ungeeignet, da es keine Drosselungsfähigkeiten liefert. Robocopy hat entweder Speicherprobleme verursacht, indem es gedrosselt wird oder wenn es nicht durch Überschreitung der verfügbaren Netzwerk-/Speichergrenzen gedrosselt wird.

Jetzt ist der spaßige Teil: Die Verwendung der Standard-Windows-Explorer-Kopie GUI zeigt keines dieser Probleme. In der Tat kopiert es blitzschnell und zeigt dabei keine spürbare Auswirkungen auf die Systemleistung.

Der nächste Schritt würde das Erstellen eines benutzerdefinierten Kopierprozesses mit basic win api beinhalten, um das gewünschte Explorer-Kopierprozessverhalten nachzuahmen.

F: Welchen grundlegenden Kopierbefehl hat die Explorer-Kopie mit ... copyFile2? ... ein komplett nicht verfügbarer interner Kopierbefehl? Sollte ich andere Optionen in Betracht ziehen?

+1

Mit der 'IFileOperation'-Schnittstelle können Sie auf die Kopierfunktion zugreifen, die der Explorer verwendet. –

+0

Danke, ich werde mich darum kümmern. –

+0

@ JonathanPotter Ich habe ein Tool implementiert und implementiert, das die IFileOperation-Schnittstelle verwendet. Fühlen Sie sich frei, eine Antwort zu posten und ich werde es akzeptieren. –

Antwort

1

Die Schnittstelle IFileOperation ermöglicht den Zugriff auf die Kopierfunktion, die der Explorer verwendet. Die Dokumentation für IFileOperation::CopyItem enthält ein vollständiges Beispiel für die Verwendung.

Verwandte Themen