Just because you see "iowait" doesn't mean anybody is actually waiting on I/O. Semantics and statistics - what a mix ...
iowait says the CPU is idle, and there is I/O yet to complete. Possibly independent (and non related) events.
If you want to see what tasks are in uninterruptable sleep (usually disk I/O) try this
Code:
top -b -n 1 | awk '{if (NR <=7) print; else if ($8 == "D") {print; count++} } END {print "Total status D: "count}'
To find out what task(s) is/are doing the most I/O, you'll need a recent kernel with taskstats enabled - try iotop.py or collectl.