我想知道如何监控哪个进程取出我所有的I / O带宽。我知道的唯一命令是gstat
,但它显示累积信息。我是否可以使用任何工具来检查其运行过程的I / O使用情况?该系统是FreeBSD 8.3。
iotop是你想要的。大多数linux发行版都有一个包。
答案是使用top
然后按m来显示每个进程/线程的IO百分比。
如果要跟踪单个进程,可以使用ktrace:
$ ktrace -ti -p PID
请阅读manual for ktrace,以便您知道在使用之前如何禁用ktrace。就像是:
$ ktrace -p PID -f debug.txt
$ ktrace -C
$ kdump -f debug.txt
kdump,因为输出不是人类可读的。
根据一项快速研究,对于网络分析:您可以使用lsof -i
或sockstat
(http://www.freebsd.org/cgi/man.cgi?query=sockstat&sektion=1)来识别由特定进程打开的套接字,然后您可以使用tcpdump
检查该连接的详细信息(http://www.thegeekstuff.com/2010/08/tcpdump-command-examples/#more-5676)。您也可以尝试trafshow
和iftop
。
对于磁盘I / O:在Linux上我使用sar -q
,必须有类似的东西。