web-dev-qa-db-ja.com

プロセスの読み方 '/ proc / pid / io

各プロセスのディスクアクティビティを監視しようとしています。これを行う方法を見つけた1つの方法は、/ proc/pid/ioファイルを読み取り、フィールドを以前に読み取ったものと比較することです。私の監視プロセスが一部のioファイルしか読み取れないように見えることを除いて、これは正常に機能します(たとえば、Apacheを読み取る権限がありません)。他人のioを読む方法は?また、おそらくこの目標を達成するためのより良い方法がありますか?

編集明らかにプロセスをルートとして実行できますが、それは避けたいと思います

3
ren

iotopを使用します。

Redhat/Centos/Fedoraマシンのリポジトリで利用できるはずです(まだインストールされていない場合)。

topと同様の情報を出力しますが、CPU /メモリ統計の代わりに、IO統計(ディスクの読み取り、書き込み、スワップイン)を取得します。

オプション-p-uおよび--onlyあなたが興味を持っているかもしれません。

たとえば、ID5435のプロセスのIOアクティビティを確認するには、次を使用します。

iotop -p 5435

manページから:

   -p PID, --pid=PID
          A list of processes/threads to monitor (all by default).

   -u USER, --user=USER
          A list of users to monitor (all by default)

   -P, --processes
          Only show processes. Normally iotop shows all threads.
5
Sree