Wie oft leert Windows den Schreibcache?

1276
Joseph L.

Wie lange dauert es, bis eine Dateiübertragung abgeschlossen ist, bis Windows den Schreibcache leert?

Zum Beispiel führe ich eine Sicherung auf einer Festplatte aus (mit aktiviertem Schreib-Caching). Sobald die Sicherung abgeschlossen ist, schalte ich das Laufwerk aus. Wird der Schreibcache sofort gelöscht, wenn die Festplatten-E / A abgeschlossen ist, oder gibt es eine Wartezeit?

1

2 Antworten auf die Frage

2
Jamie Hanrahan

Windows leert den internen Dateicache in einem acht Sekunden dauernden Fenster. Das heißt, jede zweite Achtel der verschmutzten Seiten im Cache werden zum Schreiben in eine Warteschlange gestellt. Das eigentliche Schreiben kann länger dauern. Andere Faktoren können auch dazu führen, dass die Schreibvorgänge verzögert werden.

Der interne Cache des Laufwerks sowie der Windows-Cache werden garantiert gelöscht, wenn Sie den Dialog "Sicher trennen" aufrufen. Es wird Ihnen nicht "sicher zu entfernen" angezeigt, bis die Schreibvorgänge in Windows tatsächlich abgeschlossen sind und das Laufwerk meldet, dass der Befehl zum Leeren der internen Puffer auf das Medium abgeschlossen ist.

Können Sie bitte Referenzen für Ihre Antwort angeben? Ich verstehe das (zitiert von Windows Internals) * "... einmal pro Sekunde wird die Lazy-Write-Funktion des Cache-Managers auf einem System-Worker-Thread ausgeführt und wartet ein Achtel ** der verschmutzten Seiten im Systemcache auf ... "* Es gibt auch viele Szenarien, in denen der Flush-Algorithmus sich an die Arbeitslast anpasst, so dass es nicht immer möglich ist, sicher zu wissen, wann * alle * Schreibvorgänge gelöscht werden. misha256 vor 7 Jahren 0
Wenn _Windows Internals_ sagt, dass es ein Achtel ist, dann ist es ein Achtel. Ich habe das oben editiert - danke. Der Ratschlag, die Sequenz "Sicher trennen" zu durchlaufen, ist immer noch korrekt. dass _does_ Ihnen mitteilt, dass alle Schreibvorgänge gelöscht werden. Jamie Hanrahan vor 7 Jahren 0
Hinweis: In der Vergangenheit wurde bei einigen Laufwerken festgestellt, dass sie den Cache an Bord leerten. Ich werde gemeinnützig sein und sagen, es sei eine "unvollständige Implementierung" der Funktion. Ich habe seit mindestens zehn Jahren nichts von einem Fall gehört, also gehe ich davon aus, dass dies bei keinem Laufwerk, das wir wahrscheinlich verwenden werden, ein Problem ist. Jamie Hanrahan vor 7 Jahren 0
1
Erik Bye

Die Empfehlung von Microsoft besteht darin, die Pufferung des Schreibcache-Puffers nur dann zu deaktivieren, wenn das angeschlossene Gerät über eine eigene Stromversorgung verfügt, um einen Verlust bei Stromausfall zu vermeiden. Dies ist direkt von der Registerkarte Festplatteneigenschaften / Richtlinien (siehe Abbildung unten).

write-cache buffer flushing

Die Puffer sollten nur beim bestätigten Schreiben geleert werden, es gibt jedoch einige Probleme mit dem Betrieb des Datenträgers. Was den Stromausfall angeht, sprechen wir von ein paar Sekunden. Das heißt, Sie haben keinen Datenverlust, es sei denn, der Stromausfall erfolgt innerhalb von zwei Sekunden nach dem Schreiben.

Wenn Sie während eines Aufrufs an FlushFileBuffers die Leistung verlieren, kann dies nur zu partiellen Schreibvorgängen führen, da das vollständige Schreiben nicht ausgeführt wird, bevor der Puffer vollständig geleert ist. Es gibt einen Indexspeicher, der darauf verweist, wo sich die Daten tatsächlich befinden. Dieser Indexspeicher wird zuerst geschrieben.