Io 在FreeBSD上查找具有大量磁盘I/O的进程

Io 在FreeBSD上查找具有大量磁盘I/O的进程,io,operating-system,freebsd,Io,Operating System,Freebsd,我想知道如何监视哪个进程将我所有的I/O带出。我知道的唯一命令是gstat,但它显示累积信息。是否有任何工具可用于检查正在运行的进程的I/O使用情况?该系统是FreeBSD 8.3。根据快速研究,用于网络分析:您可以使用lsof-i或sockstat(http://www.freebsd.org/cgi/man.cgi?query=sockstat&sektion=1)要识别特定进程打开的套接字,可以使用tcpdump检查该连接的详细信息(http://www.thegeekstuff.com/

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

根据快速研究,用于网络分析:您可以使用
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-您也可以尝试
trafshow
iftop


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

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

$ ktrace -ti -p PID
请务必阅读,以便在使用前了解如何禁用ktrace。例如:

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

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

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

是您想要的。大多数linux发行版都有一个包。

我对网络没有问题,只是磁盘的I/O高(从gstat可以看到)我的坏,我看到了“带宽”在你的问题中,我感到困惑。这里有一篇有趣的文章:,希望它能帮助你。你检查过其他问题吗?是的,我知道ktrace,但它不显示每个请求的重量。等等,重量?那么一些包嗅探程序,如WireShark或Fiddler呢?不,网络没有问题。重量我是指磁盘容量的%nnel Bandwith您是否尝试使用vmstat和iostat检查时间框架和磁盘I/O速率?
systat-iostat
iostat-x2
vmstat这是什么版本的“top”呢?在我的“m”上切换内存使用摘要。@DanielKitachewsky-在我的FreeBSD上工作:
$top-v
提供
top:version 3.5beta12
。FreeBSD确实使用了与大多数Linux发行版不同的top。在我的Linux设备上,“m”可以像你提到的那样切换内存使用情况。尝试
shift+m
以内存百分比缩短内存。
shift+p
用于cpu,而
shift+t
用于时间,但FreeBSD没有(至少不在端口中)。我认为,
iotop
使用Linux的/proc,这在FreeBSD上是不一样的。我想知道为什么在FreeBSD上甚至不存在该工具的情况下,这一点会得到如此多的提升和接受?这个答案在FreeBSD上不起作用!请查看下面的工作答案或使用
top-m io-o total
@CiroSantilli709大抓捕六四事件法轮功 这是一个linux问题。不过这更合适:@eis肯定只是说它是相关的;-)99%的谷歌用户会选择linux