私のLenovo T400とUbuntuでは、ハードドライブ書き込み用のライトが点滅し続けます。 LinuxでハードドライブへのI/Oを実行しているプロセスを見つけることができるかどうか疑問に思っていましたか? top
の場合と同様に、どのプロセスがほとんどのCPUとメモリを使用しているかを確認できます。
Iotop は、必要なツールに適したツールです。また、DISK READ、DISK WRITE、SWAPIN、およびIO(全体のパーセンテージ)のいずれかでの累積I/O量を表示することもできます。これは、気の利いたインターフェースを介して行われます。
top
のように、 プレゼンテーション はかなり忙しいです。もう1つは、top
が持つ無数のオプションがないことです(たとえば、非表示にすることを選択できません)列には興味がありませんが)、ツールはその特定の目的には十分すぎるほどです。
lsof
( man lsof )を使用できます。以下は、書き込み用に開いているすべてのファイルのリストを返します。
lsof | grep -e "[[:digit:]]\+w"
strace
を使用します。
特にディスクアクティビティが少ない場合は、短いアクセスラインがすぐに消えないように、iotopをバッチモードで使用する必要があります。 Linuxでファイルシステムの読み取り/書き込みをファイル名でログに記録するにはどうすればよいですか? の回答は、これを行う方法を示しています。
これまでのところ、
iotop
が最善の総合的なソリューションです。次のコマンドは、ディスクを使用するすべてのプロセスのリアルタイム出力を提供します。
iotop -bktoqqq -d .5
where: -b is batch mode
-k is kilobytes/s
-t adds timestamp
-o only show processes or threads actually doing I/O
-qqq removes output headers
-d .5 updates every .5 seconds
プロセスIDを取得したら、次のようにしてファイルを見つけることもできます。
lsof -p $PID