Betrachten wir /proc/meminfo
zeigt die Dirty
Zahl schrumpft mit der Zeit, wenn alle Daten herausgespult werden; ein Teil davon kann in Writeback
übergehen auch. Das ist eine Zusammenfassung für alle Geräte, aber in den Fällen, in denen ein Gerät im System viel langsamer ist als der Rest, landen Sie normalerweise dort, wo alles in dieser Warteschlange damit zusammenhängt. Sie werden wahrscheinlich die Dirty
finden große Zahl beim Start und die sync
endet etwa zur selben Zeit, in der es sich 0 nähert. Versuchen Sie Folgendes, um eine interaktive Anzeige zu erhalten:
watch -d grep -e Dirty: -e Writeback: /proc/meminfo
Bei normalen Festplatten kann ich normalerweise Writeback
ignorieren , aber ich bin mir nicht sicher, ob es häufiger am USB-Übertragungsweg beteiligt ist. Wenn es ohne klaren Trend nur auf und ab springt, können Sie sich wahrscheinlich nur den Dirty
ansehen Nummer.
Sie können sich die /sys/block/<device>/stat
ansehen Datei für das entsprechende Gerät, während Sie synchronisieren. Die Spalte 9 gibt die Anzahl der In-Flight-Anfragen auf dem Gerät an, die nach Abschluss der Synchronisierung auf Null sinken sollte.
Ich kenne keine Möglichkeit, das in eine Anzahl von Bytes zu übersetzen, aber es sollte Ihnen eine ungefähre Vorstellung davon geben, wie viel "Zeug" noch aussteht.
Weitere Informationen finden Sie in der Datei stat.txt in der Kernel-Dokumentation. (Es gibt auch eine inflight
Datei in diesem Verzeichnis auf meinem System, die so aussieht, als könnte sie Lese- und Schreibanfragen enthalten, aber ich kann keine Dokumentation dafür finden.)
Indem Sie Gregs Antwort verwenden, können Sie einfach sync
haben läuft im Hintergrund, während der Status des Dirty-Blocks im Speicher angezeigt wird.
Führen Sie dazu einfach diesen Befehl aus:
sync & watch -n 1 grep -e Dirty: /proc/meminfo
Dadurch wird sync
aufgerufen im Hintergrund während der Ausführung von watch
vorne. Wenn die sync
Befehl abgeschlossen ist (ungefähr wenn die Größe des Dirty-Blocks 0 erreicht hat), erhalten Sie eine Ausgabe, die so aussieht:
1] + 27260 done sync
Das bedeutet, dass der Befehl beendet ist und Sie watch
beenden können Befehl mit Strg +C .