Answers:
查看/proc/meminfo
将显示Dirty
随着所有数据假脱机,数量随着时间的推移而减少;其中一些可能也会溢出Writeback
。这将是针对所有设备的摘要,但是如果系统上的一台设备比其余设备慢得多,则通常会导致该队列中的所有内容与之相关。Dirty
当开始和sync
结束时,您可能会发现较大的数字,它接近0的同时。尝试以下操作以获得交互式显示:
watch -d grep -e Dirty: -e Writeback: /proc/meminfo
对于常规磁盘,我通常可以忽略Writeback
,但是我不确定USB传输路径中是否更多地涉及到它。如果只是在没有明显趋势的情况下上下反弹,您可能只需看一下Dirty
数字即可。
您可以在/sys/block/<device>/stat
同步时查看相应设备的文件。9 日列将指示装置,当同步完成它应该降到零上飞行的请求数。
不知道将其转换为多个字节的方法,但是它应该使您大致了解仍有多少“填充”待处理。
有关更多信息,请参见内核文档中的stat.txt文件。(inflight
我的系统上该目录中还有一个文件,看起来它可能包含读写运行中的请求,但我找不到该文件。)
watch -t -n1 'awk "{ print \$9 }" /sys/block/sdd/stat'
sync
之后,它通常会徘徊在150左右。它确实为0,但仅在最后。这使得其他答案对于不耐烦地观察进度更加有用。
du
用于计算在驱动器上同步的实际数据。
通过使用Greg的答案,您可以简单地sync
在后台运行,同时在内存中显示Dirty块的状态。
为此,只需运行以下命令:
sync & watch -n 1 grep -e Dirty: /proc/meminfo
在前端sync
执行时将在后台调用watch
。当sync
命令完成时(大约在Dirty块的大小达到0时),您将获得如下所示的输出:
1] + 27260 done sync
这意味着命令已完成,您可以watch
使用Ctrl+ 终止命令C。