How to see which devices are used by a process

deviceioprocess

iotop and iostat are great tools to see how much I/O is happening.
But I haven't found out how these (or other) tools can show me the I/O rate per device and per process.

So I'm looking for a way to let iostat show the specific processes or to let iotop show the I/O per device when limited to one process. Or another tool that can give me insight into which device is used by a process.

I need this to get a better grip on optimizing MySQL on a box that has Fusion I/O cards but it's still very slow.

Best Answer

for example iostat /dev/sda1

should already give you "per device", or rather per partition statistics

so you need to figure out your fusion I/O cards device name and just add it as an option.

iostat 5 2 /dev/sda1 for example shows you the statistics on partition 1 on the device sda for "since boot" and for the last 5 seconds see the manual for more details ( man iostat)

for further breakdown on per process base use for example iotop.

see serverfault similiar question

additionally you might want to read more about getting a bit more specific info here:

Blog from Benjamin Cane