How can I find which process is causing this IO read (tried iotop already)
http://www.linuxinsight.com/proc_sys_vm_block_dump.html
Set vm.block_dump
for a second, and then turn it off immediately (sysctl -w ... ; sleep 1; sysctl -w ...
). dmesg
then reveals all the low-down.
As you already used iotop,I am not sure how much this is useful,but you can use systemtap like
stap -v iotop.stp
and it will give you output
Process KB Read KB Written
Xorg 21 0
crond 10 0
wfica 2 0
try with process accounting.
tools like atop in pair with process accounting will be able to show you what processes are using the disk I/O the most.
you can also check "sa" command line tool to interpret process accounting info and sort processes by (average)number of I/O operations