Warum verlangsamt sich die Geschwindigkeit meines Flash-Laufwerks beim Kopieren?

27

Nach ein paar Minuten Kopieren wird es immer langsamer. Warum?

ZB beginnt es mit 20 MByte / s, und wenn es damit fertig ist, sind es @ 10 MByte / s.

Verschiedene Dateien, groß, klein usw.

UPDATE: Frage bezieht sich auf verschiedene Betriebssysteme, also ist es eine "allgemeine Frage"

LanceBaynes
quelle
Wie viel kopieren Sie und wie viel freien Speicher haben Sie auf Ihrem Computer?
KCotreau
PC -> USB-FLASH-Laufwerk: mehrere hundert GByte frei -> wenige GByte frei
LanceBaynes
1
Ich vermute, dass Sie zuerst Dateien im Speicher zwischengespeichert haben, damit diese schnell übertragen werden können. Sobald sie von der Festplatte verschoben werden, verlangsamt sich die Übertragung. Ich kann mir in Ihrem Fall allerdings nicht sicher sein.
KCotreau
Sie raten mir also, den Befehl "sync" häufiger zu verwenden?
LanceBaynes
Ich verstehe nicht, was Sie mit dem Sync-Befehl meinen. Sie haben der Frage keinen Kontext gegeben. Ich bin mir nicht mal sicher, welches Betriebssystem.
KCotreau

Antworten:

25

Dieses Verhalten ist nicht spezifisch für Ihr Flash-Laufwerk. Sie können es auch bei Festplatten sehen. Dies hat mit dem Caching-Mechanismus zu tun, den die meisten Betriebssysteme und Festplatten verwenden, um kleine Schreibvorgänge zu beschleunigen.

Die angezeigten 20 MB / s sind die Daten, die in den Festplatten-Cache geschrieben werden (normalerweise schneller, aber kleiner Speicher). Sobald dieser Cache voll ist, muss er auf die Festplatte geschrieben werden - und jetzt hat die langsamere Festplatte einen Engpass.

Beispiel 1: Der Effekt ist wirklich ausgeprägt, wenn Sie einen Controller mit einem großen Cache (wie einen guten RAID5-Controller) haben, auf dem ~ 500 MB Daten schnell zwischengespeichert werden können, bevor sie auf die Festplatte geschrieben werden müssen.

Beispiel 2: Sie können den Cache während der Wiedergabe sehen, wenn Sie das Flash-Laufwerk herausziehen, während die Dateikopie "fertig" ist. Zu diesem Zeitpunkt wird Ihre Datei zwischen der Festplatte und dem Cache aufgeteilt - so ist die Kopie für das Betriebssystem "fertig", aber der Festplattencontroller muss noch die im Cache verbleibenden Daten auf die Festplatte schreiben. Wenn Sie das Flash-Laufwerk wieder einlegen und die Datei überprüfen, sehen Sie, dass nicht alles vorhanden ist.

Haftungsausschluss: Diese Beispiele funktionieren nicht, wenn in Ihrem Betriebssystem / auf der Festplatte kein Schreibcache aktiviert ist.

Wenn es sich bei der Arbeit nicht um das Zwischenspeichern von Festplatten handelt, ist es wahrscheinlich, dass das, was Sie sehen, ein Fragmentierungseffekt ist. Je voller die Festplatte wird, desto weniger zusammenhängender freier Speicherplatz ist verfügbar und das Dateisystem muss härter arbeiten, um Speicherorte für Ihre Dateien zu finden.

ta.speot.is
quelle
Denken Sie auch daran, es ist ein Flash-Laufwerk. Die Hardware wurde nie auf Geschwindigkeit optimiert, sondern auf Erschwinglichkeit.
Surfasb
Ich glaube nicht, dass dies erklären würde, warum die Leistung bei langen Dateikopien abnimmt. Eher würde die Leistung über die Lebensdauer des Laufwerks abnehmen, ja?
ta.speot.is
Es macht vollkommen Sinn. Sie sind für Burst-Geschwindigkeiten und nicht für Dauerbetrieb optimiert. Denken Sie an die durchschnittliche Größe der Dateien, die auf Flash-Laufwerke geladen werden. Würden Sie für eine 30 Sekunden lange Dateiübertragung oder für eine 2 Sekunden lange Übertragung optimieren? Fügen Sie dies zu Ihren beiden Beispielen hinzu, und es wird eine Menge erklärt.
Surfasb
Es ist, als würde man versuchen, zwei Leute gleichzeitig durch eine durchschnittliche Tür zu stopfen. Zunächst können Sie berechnen. Wow, ich ging von null auf zwei Personen gleichzeitig durch diese Tür. Meine Geschwindigkeit ist großartig. Dann wird die Linie länger und Ihre Abtastung wird besser und Sie erkennen endlich, dass kleine Stichprobe = schlechte Mathematik. . .
Surfasb
@ ta.speot.is Ich nehme an, dieser von Ihnen erwähnte Festplatten-Cache wird vom Betriebssystem auf der Festplatte verwaltet und unterscheidet sich von dem Hardware-Cache, den Festplatten intern haben, richtig?
Sepehr
1

Zwar verursacht das Zwischenspeichern einen Teil davon, aber es ist nicht der einzige Faktor. Wenn nur das Cachen eine Rolle spielt, ist zu erwarten, dass die Schreibgeschwindigkeit sehr schnell von mehreren hundert MB / s auf die tatsächliche Schreibgeschwindigkeit des Laufwerks abfällt und für den Rest des Schreibvorgangs beibehalten wird. Dies ist jedoch nicht das, was ich beobachtet habe, wenn große Übertragungen auf und von der Festplatte durchgeführt wurden (z. B. Brennen von Boot-Images). Stattdessen beobachte ich, dass die Geschwindigkeit im Laufe des gesamten Vorgangs allmählich abnimmt.

Diese Verlangsamung wird durch Datenremanenz auf dem oder den Flash-Chips verursacht, die zum Speichern der Daten verwendet werden, was erfordert, dass einige der Blöcke mehrmals beschrieben werden.

In einem Flash-Chip befinden sich Datenblöcke, in die geschrieben werden kann. Beim Schreiben kann der Computer nur zwei Dinge tun: Er kann einen gesamten Block löschen oder einige (oder alle) Bits in einem Block von 0 auf 1 ändern.

Einige dieser Blöcke sind jedoch besser als andere, insbesondere bei Flash-Laufwerken mit geringerer Qualität. Wenn neue Daten darauf geschrieben werden, können einige der Bits manchmal direkt nach dem Schreiben von selbst auf 0 zurückgesetzt werden nicht ändern. Wenn Sie also in einen Block schreiben, muss das Betriebssystem überprüfen, ob alle Daten korrekt geschrieben wurden. Wenn dies nicht der Fall ist, muss der Block zwei- oder dreimal wiederholt werden, indem dieselben Daten in denselben Block geschrieben werden bis die Daten bleiben.

Wenn Ihr Computer eine Reihe von Daten auf das Flash-Laufwerk schreibt, finden Sie hier eine (nicht vollständig genaue, aber ausreichend gute) Erklärung, wie dies funktioniert:

  1. Nehmen Sie den ersten zu schreibenden Satz von Blöcken und schreiben Sie sie alle.
  2. Lesen Sie alle Blöcke, die wir gerade geschrieben haben, zurück und erstellen Sie eine Liste der Blöcke, die nicht übereinstimmen
  3. Schreiben Sie den nächsten Satz von Blöcken zusammen mit den Blöcken, die beim letzten Mal nicht richtig geschrieben wurden.
  4. Wiederholen Sie 2-3, bis alle Blöcke korrekt geschrieben wurden.

Wenn der Computer auf das Laufwerk schreibt, meldet er die Rate, mit der er zum ersten Mal Blöcke auf das Laufwerk schreibt. Da auch frühere Blöcke gleichzeitig umgeschrieben werden müssen, sinkt der Gesamtdurchsatz, der für unbenutzte Blöcke verwendet werden kann, je mehr Umschreibungen ebenfalls erforderlich sind. Somit nimmt die scheinbare Schreibgeschwindigkeit mit der Zeit ab.

AJMansfield
quelle
Ich schreibe eine 12 Gig 7zip-Datei auf ein brandneues USB 3.0-Flash-Laufwerk, das als NTFS formatiert ist. In der ersten Minute waren es ungefähr 100 MB / s, dann fielen sie für ungefähr eine Minute auf 25ish MB / s, dann fielen sie für ungefähr 10 Minuten auf ungefähr 11 MB / s. Es war kein allmählicher Abstieg, es waren drei verschiedene Plateaus.
Eric
Ich habe das Archiv von meinem alten i7-Laptop mit 16 GB RAM kopiert. Das Kopieren desselben 7zip-Archivs mit demselben USB-Stick auf meinem neuen Xeon-Laptop mit 32 GB RAM dauerte 2 Minuten, und die Geschwindigkeit nahm nicht ab.
Eric
0

Wenn eine Datei auf ein Laufwerk geschrieben wird, sei es ein Flash-USB-Laufwerk oder eine Festplatte, werden die Daten NICHT / NIE zurückgelesen, um festzustellen, ob sie übereinstimmen. Das würde ewig dauern. Die Überprüfung des Schreibvorgangs erfolgt durch die Hardware (Cyclic Redundancy Check). Wenn ein Fehler auftritt, wird er von der Hardware, die einen Fehler festgestellt hat, an die Anwendung zurückgesendet. Der Stillstand, der auftritt und sich verlangsamt (sogar bis zu einer Pause), wird dadurch verursacht, dass die CPU schneller schreibt, als das Gerät damit umgehen kann. Sie werden dies bei internen Festplatten nicht feststellen. Sie werden nie sehen, was auf einem Windows-Betriebssystem wirklich passiert, aber unter Linux können Sie tatsächlich sehen, dass die CPU angehalten wird, bis die USB-Hardware OK sagt, um fortzufahren

Stevedonato
quelle
Die unterschiedlichen Schreibgeschwindigkeiten verschiedener Speichergeräte können extrem sein. Vergleichen Sie beispielsweise die Schreibgeschwindigkeit einer alten SD-Karte mit der Schreibgeschwindigkeit einer SATA III-SSD.
Karl
3
Bitte unterlassen Sie persönliche Beleidigungen. Auch wenn Ihr Beitrag möglicherweise korrekt ist, müssen Sie ihn bearbeiten , um unseren Community-Standards zu entsprechen.
Ben N