我们的服务器有多个硬盘,运行着许多进程。其中一个磁盘的磁盘利用率很高,我想找出导致这种情况的进程。我使用了iotop命令,但它不按磁盘进行过滤,并且输出很大。我使用纳米并且它只说我的磁盘上有很多读取 io。我如何按硬盘过滤进程并按 io 使用情况排序?
操作系统:Ubuntu 14.04
答案1
如果你的内核配置了 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