回答:
見ると、すべてのデータがスプールアウトされるにつれて/proc/meminfo
、Dirty
数が時間とともに縮小することがわかります。その一部がWriteback
同様に流出する可能性があります。これはすべてのデバイスに対する要約ですが、システム上の1つのデバイスが他のデバイスよりも非常に遅い場合、通常はそのキュー内のすべてが関連する場所になります。おそらく、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
、メモリ内のダーティブロックの状態を表示しながら、単にバックグラウンドで実行できます。
これを実現するには、次のコマンドを実行するだけです:
sync & watch -n 1 grep -e Dirty: /proc/meminfo
これは、フロントでsync
実行watch
中にバックグラウンドで呼び出します。場合はsync
、コマンドが(ダーティブロックのサイズが0に達したときの周りの)完成しています、あなたはこのような出力を持っています。
1] + 27260 done sync
これは、コマンドが終了したことを意味し、+でwatch
コマンドを強制終了できます。CtrlC