I want to check which process taking highest I/O. To be exact I want to check which process doing the highest write operation and how much.

I know there are some tools like iotop. But as I have to work without a sudo and a foreign environment with very limited privilege I want to know how can I achieve this with built-in tools like ps. I want something like the following which I use to find CPU/Memory usage,

$ps -eo pid,command,%cpu,%mem --sort=-%cpu

Update: After trying several ways I found that I can't read /proc/[pid]/io file due to lack of privillage so no way to get I/O without proper privilege I guess.

 $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
  • I think it looks like to be impossible to do, but there is no cause for downvotes.... – Luciano Andress Martini Jan 9 '18 at 20:31

The problem is that you do not have access to this information as ordinary user for other users' processes.

| improve this answer | |
  • Hmm that makes sense. But if I can see their cpu/memory usage then why I can't see their i/o usage? – muhammad Jan 9 '18 at 20:41

Below command list top resource consuming process

ps axo %cpu,%mem,command,pid | sort -nr | head

Below command show the statistics of disk io rate.


For particular disk io rates use below command

iostat -d diskname

Below are imp tools used to monitor disk io rates

1. Iostat
2. Iozone
3. SAR
4. vmstat
| improve this answer | |
  • This will show the changes in disk-IO every 0.1s: watch -n.1 -d iostat – rubo77 May 14 at 4:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.