各プロセスが消費するディスク容量を決定する最良の方法を探しています。私が知っている限り、私の前には1つの選択肢しかありませんでした。つまり、すべてのプロセスの出力を取得してwrite_bytes
追加します。/proc/<pid>/io
しかし、私はこれを行うことによって私が得た総額がdf -h
私が受け取ったものと一致しないことを発見しました。
答え1
次のパイプラインを使用します。
iotop -qqq -b -Paok -n 2 -d 30 | sort -n -k6 -r | head -n 20
オプション:
-qqq
:タイトルと要約を印刷しません
-b
。 :バッチモード
-P
:すべてのTherads以外のプロセスのみを表示します
-a
。 :累積I / O
-k
:結果をキロバイトで印刷します
-n 2
。 :私が知っている限り、実行回数は最初以降でなければなりません。 >=最後の実行2回1秒未満
-d 30
:実行間遅延(この場合は総実行とも呼ばれる)、およそ
| sort -n -k6 -r
:列6(合計書き込み)を基準に数字で並べ替え、逆順
| head -n 20
:上位20個のみ表示OK
ノート:使用された物理空間全体ではなく、プロセスによって作成されたデータ量のみを表示します。プロセスが同じ20KBファイルに1秒間に1回連続して書き込む場合、最終的に20KBのスペースを使用しますが、30秒で合計600KBを書き込みます。この場合、私のプロセスが記録するディレクトリを監視します。du
答え2
使用できるオートフ。これにより、各プロセスのリアルタイムディスク使用量が表示されます。 CentOS / Fedoraを使用していると仮定すると、これを行うことができます。
$ sudo yum install iotop
それでは、電話してくださいiotop
。