问题描述
我想我是这里的一个bug的受害者。有时候我工作的时候(我仍然不知道为什么),我的网络流量高达200 KB /s,并保持这种状态,即使很艰难,我也没有做任何事情internet-related。
CPU使用率有时会发生这种情况。当它发生时,我只是运行一个top
命令来找出哪个进程是负责的,然后是kill
它。问题是:我无法知道哪个进程对我的高网络使用率负责。资源监视器和top
命令只告诉我我的总网络使用情况,它们都没有告诉我过程特定的网络信息。
我在这里发现了有关监视总带宽使用情况的问题,但正如我所提到的,这不是我所需要的。有没有其他的命令可以用来找出哪个进程失控?
命令iftop
给出的结果完全不同意系统监视器报告的信息。虽然后者声称有很高的网络流量,但前者称只有1 KB /秒。
我已经尝试杀死所有明显的(Firefox,update-manager,Pidgin等),但没有运气。到目前为止,重新启动机器是我发现摆脱问题的唯一途径。
最佳解决方案
我用nethogs取得了很多成功。它必须以超级用户身份运行,但有多种不同的方式可以对统计信息进行排序(例如,自启动nethogs以来KB /s或监视的总带宽)。
另外,如果您使用无线,则需要将设备传递给它。
使用命令:sudo apt-get install nethogs
安装它
例如:sudo nethogs wlan0
次佳解决方案
使用iftop
查找接收最多流量的计算机上的TCP端口。然后使用sudo netstat -tup
找到进程”owning”该端口。
这是你正在寻找的过程。
PS:也应该为UDP工作。
第三种解决方案
你可能想看看ntop
–它应该监视进程级别的网络活动。您可以在软件中心找到ntop
或使用sudo apt-get install ntop
有关安装说明,请按照其页面http://packages.ntop.org/
第四种方案
另一种选择是iptraf。它不会告诉你进程的PID,但会告诉你哪个连接使用多少带宽。
第五种方案
迟到的答案,但我有同样的问题。原来是Ubuntuone。通过运行tcpdump发现。我在过程识别上经历了相同的学习曲线。我的笔记是here。