I/Oが最も高いプロセスを確認したい。正確には、最も高い書き込み操作を実行しているプロセスとその量を確認したいと思います。
iotop
のようなツールがあることは知っています。しかし、私はSudoと非常に限られた特権を持つ外部環境なしで作業する必要があるので、ps
のような組み込みツールでこれをどのように実現できるか知りたいです。 CPU /メモリ使用量を見つけるために使用する次のようなものが欲しいのですが、
$ps -eo pid,command,%cpu,%mem --sort=-%cpu
更新:いくつかの方法を試した後、私は/proc/[pid]/io
ファイルは特権が不足しているため、適切な特権なしにI/Oを取得する方法はないと思います。
$cd /proc/; for i in $(ls | egrep -o ^\[0-9\]*); do cat $i/io; done
cat: 1/io: Permission denied
cat: 10/io: Permission denied
cat: 10284/io: Permission denied
cat: 11/io: Permission denied
cat: 1174/io: Permission denied
cat: 12/io: Permission denied
........
問題は、他のユーザーのプロセスの通常のユーザーとしてこの情報にアクセスできないことです。
以下のコマンドリストのトップリソース消費プロセス
ps axo %cpu,%mem,command,pid | sort -nr | head
以下のコマンドは、ディスクioレートの統計を表示します。
iostat
特定のディスクIOレートについては、以下のコマンドを使用します
iostat -d diskname
以下は、ディスクIOレートを監視するために使用されるimpツールです
1. Iostat
2. Iozone
3. SAR
4. vmstat