我想知道如何监控哪个进程占用了我所有的 I/O 带宽。我知道的唯一命令是gstat
,但它显示累积信息。有什么工具可以用来检查正在运行的进程的 I/O 使用情况吗?系统是 FreeBSD 8.3。
问问题
38758 次
4 回答
12
答案是使用top
then hitm来显示每个进程/线程的 IO 百分比。
于 2012-12-25T05:16:49.550 回答
10
iotop就是你想要的。大多数 linux 发行版都有一个包。
于 2013-09-10T03:11:32.210 回答
2
如果要跟踪单个进程,可以使用 ktrace:
$ ktrace -ti -p PID
请阅读ktrace 手册,以便了解如何在使用前禁用 ktrace。就像是:
$ ktrace -p PID -f debug.txt
$ ktrace -C
$ kdump -f debug.txt
kdump,因为输出不是人类可读的。
于 2012-12-24T13:14:57.177 回答
0
根据快速研究,对于网络分析:您可以使用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
,一定有类似的东西。
于 2012-12-24T13:14:04.597 回答