プロセス'/proc/pid/ioを読む方法

プロセス'/proc/pid/ioを読む方法

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

編集する明らかにプロセスをrootとして実行できますが、これを避けたいと思います。

ベストアンサー1

使用iotop

Redhat/Centos/Fedora システムのリポジトリで利用できる必要があります(まだインストールされていない場合)。

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

-pあなたは-uこれらのオプションに興味があるかもしれません--only

たとえば、プロセスID 5435の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.

おすすめ記事