在FreeBSD上查找重磁盘I / O的过程

时间:2012-12-24 13:05:24

标签: io operating-system freebsd

我想知道如何监控哪个进程取出了我所有的I / O带宽。我知道的唯一命令是gstat,但它显示累积信息。我是否可以使用任何工具来检查其运行过程的I / O使用情况?该系统是FreeBSD 8.3。

4 个答案:

答案 0 :(得分:13)

iotop就是你想要的。大多数Linux发行版都有一个包。

答案 1 :(得分:8)

答案是使用top然后点击 m 来显示每个进程/线程的IO百分比。

答案 2 :(得分:2)

如果要跟踪单个流程,可以使用ktrace:

$ ktrace -ti -p PID

请阅读manual for ktrace,以便了解如何在使用之前禁用ktrace。类似的东西:

$ ktrace -p PID -f debug.txt  
$ ktrace -C
$ kdump -f debug.txt

kdump,因为输出不是人类可读的。

答案 3 :(得分:0)

根据快速研究,对于网络分析:您可以使用lsof -isockstat(http://www.freebsd.org/cgi/man.cgi?query=sockstat&sektion = 1)识别由特定进程打开的套接字,然后您可以使用tcpdump检查该连接的详细信息(http://www.thegeekstuff.com/2010/08/tcpdump-command-examples/#更多-5676)。您还可以尝试trafshowiftop

对于磁盘I / O:在Linux上我使用sar -q,必须有类似的东西。