当前位置: 首页>>技术问答>>正文


如何找出哪个进程耗尽了我的带宽?

, ,

问题描述

我想我是这里的一个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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/362.html,未经允许,请勿转载。