Mit dem Upgrade auf Windows 10 habe ich jetzt diese schöne Grafik beim Kopieren von Dateien.
Wenn ich eine einzelne große Datei kopiere, nimmt die Geschwindigkeit immer diese einigermaßen konsistente Wellenform an. Wodurch wird das verursacht?
Die Verbindung ist
My PC <- cable -> gigabit switch <- cable -> Netgear ReadyNAS
Dateien werden über SMB kopiert. Diese Grafik zeigt eine solche Kopie über einen Zeitraum von etwa einer Minute:
Hier gibt es kein Problem, ich möchte nur verstehen, wie die Dinge funktionieren.
networking
nas
Gricey
quelle
quelle
Antworten:
Kurze Antwort: Cache schreiben
TL; DR: Erstens ist der Overhead beim Kopieren einer einzelnen großen Datei viel geringer als bei vielen kleineren. Das heißt, PC und NAS "verschwenden" nicht viel Zeit mit der Suche nach Dateien und dem Aktualisieren von Metadaten für Dateitabellen und Dateisysteme. Dies bedeutet auch einen viel höheren Durchsatz, der wahrscheinlich einige der Bandbreitenengpässe im Setup aufdeckt.
Die Spitzen und Täler im Bandbreitendiagramm scheinen in relativ regelmäßigen Abständen aufzutreten, und angesichts der Tatsache, dass Sie eine einzelne große Datei kopieren (maximale Bandbreite, minimaler Overhead), würde ich sagen, dass Sie den Effekt von Pufferung / Caching sehen .
Mir scheint, Sie senden Daten wahrscheinlich schneller an den NAS, als er auf die Festplatte schreiben kann. Dank Write Cache / Buffer kann es immer noch schneller empfangen (die Spitzenwerte des Diagramms), aber Sie können keine Daten mehr empfangen, ohne sie auf die Festplatte zu übertragen.
Schließlich wird der Puffer voll und muss auf die Festplatte geschrieben werden. In der Zwischenzeit kann der NAS keine Daten mehr so schnell empfangen wie zuvor, da er keinen Speicherort hat (der Puffer ist voll und die Festplatten sind langsamer). Hier erhalten Sie die Täler des Graphen.
Es scheint, dass Windows das Durchsatzdiagramm glättet. Mit genaueren Diagrammen (z. B. aus dem Systemmonitor) können Sie die Schreibpuffergröße tatsächlich schätzen, indem Sie die Intervalle und übertragenen Bytes analysieren.
Der Grund, warum die Spitzen und Täler nicht in perfekt gleichmäßigen Intervallen auftreten, ist wahrscheinlich, dass PC, NAS oder beide "etwas anderes" tun, während Sie die Datei kopieren.
quelle
Es ist schwer, ohne viele weitere Untersuchungen verbindlich zu antworten. Vielen Dank, dass Sie Ihre Frage mit der Zeitskala und dem Protokoll aktualisiert haben.
Es könnte normale TCP "Jakobsmuscheln" geben. TCP geht so schnell wie möglich, bis Paketverlust auftritt. Dann zieht es sich ein wenig zurück und fährt wieder hoch. Es stößt also immer wieder mit dem Kopf gegen die Decke. Auf diese Weise wird die verfügbare Bandbreite maximiert, ohne die Überlastung zu verschlechtern. Normalerweise schaue ich mir TCP-Jakobsmuscheln in einem TCPTrace-Diagramm an, das sich ein wenig von diesem Diagramm unterscheidet. Ich würde erwarten, dass es in dieser Art von Grafik etwas sägezahnartiger aussieht, aber in dieser Grafik ist möglicherweise eine gewisse Glättung zu beobachten. Und jetzt, wo ich darüber nachdenke, wären TCP-Jakobsmuscheln in einem viel kleineren Zeitrahmen, als dieser Graph zu zeigen scheint.
Es kann auch sein, dass Ihr Remote-Dateisystem-Protokoll (SMB) die Datei blockweise liest und die Dips dort sind, wo ein Block gelesen wurde und der nächste angefordert wird.
quelle
Ich glaube, Microsoft hat diese Funktion in der Fortschrittsanzeige von Windows 8 eingeführt.
Von links nach rechts wird der Fortschritt in Prozent und von oben nach unten die Übertragungsrate in MB / s angezeigt .
Die Übertragungsraten hängen von der Geschwindigkeit der Medien (BUS oder Netzwerk), der Anzahl und Größe der Dateien, dem Dateisystem und der Verfügbarkeit der Ressourcen usw. ab.
Auch während einer Dateiübertragung werden viele Metadaten gelesen / geschrieben.
Sie sehen eine einigermaßen konsistente Welle, da der Lese- / Schreibaufwand für diese Metadaten verringert wird und andere Ressourcen mit der gleichen Rate verwendet werden. Gelegentliche Einbrüche können die Ereignisse Paketverlust, nächster Blocklesevorgang, Ressourcenabfrage usw. sein.
Zur weiteren Verdeutlichung wird hier weiter gelesen
quelle