Answers:
您可以尝试NetHogs。
NetHogs是一个小的“ net top”工具。它没有像大多数工具一样按协议或每个子网划分流量,而是按进程对带宽进行分组。NetHogs不依赖于特殊的内核模块来加载。如果突然有大量网络流量,您可以启动NetHogs并立即查看引起此问题的PID。这样可以很容易地识别出已经变得疯狂并且突然占用您带宽的程序。
sudo nethogs -p eth2
。如果默认情况下不是eth0,则必须指定您的以太网。
尝试atop
...以充分利用它,您可能必须启用一些其他内核补丁(I / O记帐补丁)。
如果atop
不是一个选项,则使用netstat -anp --inet
(作为根用户)提供哪些进程正在使用(或可能lsof
用于该进程)的TCP / UDP端口的列表。从那里简单地遍历具有打开的套接字的每个进程,并使用ltrace -S
或strace
查看其读,写,发送和接收,或者使用tcpdump
指定您的本地IP地址和TCP / UDP端口的过滤器进行连接,被列出。
atop
如果您已经安装了必要的内核支持,那么肯定是其中最方便的选择。过去,我曾经让客户和雇主建立特殊的系统(不同于他们的生产映像),其唯一目的是使用来支持I / O分析atop
。但是,这些其他技术将使您到达那里。
我敢肯定我们也可以使用SystemTap来做某事...但是我不知道有任何简单的预煮食谱可以做到这一点。SystemTap非常是一种编程分析工具。
netstat -anp --inet
,然后检查Recv-Q
和Send-Q
列