/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
もあります 私のシステムのそのディレクトリにあるファイルには、進行中の読み取りおよび書き込み要求が含まれている可能性がありますが、そのためのドキュメントが見つかりません.)
グレッグの答えを使用することで、単純に sync
を持つことができます メモリ内のダーティ ブロックの状態を表示しながら、バックグラウンドで実行します。
これを実現するには、次のコマンドを実行するだけです:
sync & watch -n 1 grep -e Dirty: /proc/meminfo
これは sync
を呼び出します watch
の実行中にバックグラウンドで 前に。 sync
の場合 コマンドが終了すると (Dirty ブロックのサイズが 0 に達した頃)、次のような出力が得られます:
1] + 27260 done sync
これは、コマンドが終了し、watch
を強制終了できることを意味します。 コマンド Ctrl +C .