Io 在FreeBSD上查找具有大量磁盘I/O的进程
我想知道如何监视哪个进程将我所有的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/
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