查找哪个进程导致在特定硬盘上的利用率

我们的服务器有多个硬盘并运行多个进程。 我们有一个磁盘的磁盘利用率很高,我想找出导致这个问题的哪个进程。 我使用iotop命令,但它不会被磁盘过滤,并且它有一个很大的输出。 我用nmon ,只是说我们在磁盘上有很多读取io。 如何通过硬盘过滤进程并按io使用进行sorting?

操作系统:Ubuntu 14.04

如果您的内核configuration了CONFIG_FTRACE,通常情况下,您可以使用iosnoop (Brendan Gregg跟踪和性能集合中的一个脚本)获取详细信息。 例如:

$ sudo /opt/perf-tools-master/bin/iosnoop 5 Tracing block I/O for 5 seconds (buffered)... COMM PID TYPE DEV BLOCK BYTES LATms jbd2/sda1-33 335 WS 8,0 10551960 4096 1.67 jbd2/sda1-33 335 WS 8,0 15472840 4096 1.72 gawk 6368 WS 8,0 10393480 4096 0.35 kworker/0:1H 295 WS 8,0 129522736 20480 1.97 xterm 1864 FWS 8,0 18446744073709551615 0 0.02 jbd2/sda1-33 335 WS 8,0 10393488 8192 1.73 jbd2/sda1-33 335 FWS 8,0 18446744073709551615 0 0.13 /usr/bin/mon 746 WS 8,0 10393504 4096 0.34 Xorg 1514 FWS 8,0 18446744073709551615 0 0.06 /usr/bin/mon 746 R 8,0 19868992 4096 0.22