If you have a kernel with taskstats turned on iotop might best. Python, and looks like top. No kernel patching, and identifies the individual tasks unlike iostat and sar. Recent sysstat have pidstat - might be more useful for you.
For infrequent I/O (a few a second or less), you might need blktrace - needed a bit of setting up when I looked at it a year or so ago.