Podívejte se na /proc/meminfo zobrazí Dirty počet se v průběhu času zmenšuje, jak se všechna data vydávají; část se může rozlít do Writeback také. To bude souhrn proti všem zařízením, ale v případech, kdy je jedno zařízení v systému mnohem pomalejší než ostatní, obvykle skončíte tam, kde s ním souvisí vše v této frontě. Pravděpodobně najdete Dirty velké číslo při spuštění a sync skončí přibližně ve stejnou dobu, kdy se blíží 0. Zkuste toto pro získání interaktivního zobrazení:
watch -d grep -e Dirty: -e Writeback: /proc/meminfo
U běžných disků mohu Writeback normálně ignorovat , ale nejsem si jistý, jestli se to častěji podílí na přenosové cestě USB. Pokud to jen poskakuje nahoru a dolů bez jasného trendu, pravděpodobně se stačí podívat na Dirty číslo.
Můžete se podívat na /sys/block/<device>/stat soubor pro příslušné zařízení během synchronizace. Sloupec 9 bude indikovat počet požadavků během letu na zařízení, který by měl po dokončení synchronizace klesnout na nulu.
Nevím o způsobu, jak to přeložit na počet bajtů, ale měl by vám poskytnout přibližnou představu o tom, kolik „věcí“ stále čeká.
Další informace naleznete v souboru stat.txt v dokumentaci jádra. (Je zde také inflight soubor v tomto adresáři v mém systému, který vypadá, že by mohl obsahovat požadavky na čtení a zápis během letu, ale nemohu pro to najít dokumenty.)
Použitím Gregovy odpovědi můžete jednoduše mít sync běžet na pozadí a přitom zobrazovat stav bloku Dirty v paměti.
Chcete-li toho dosáhnout, jednoduše spusťte tento příkaz:
sync & watch -n 1 grep -e Dirty: /proc/meminfo
To zavolá sync na pozadí při provádění watch vepředu. Když sync příkaz skončí (přibližně, když velikost bloku Dirty dosáhne 0), budete mít výstup, který vypadá takto:
1] + 27260 done sync
To znamená, že příkaz skončil a můžete zabít watch pomocí Ctrl +C .