我想我是这里的一个错误的受害者。有时当我工作时(我仍然不知道为什么),我的网络流量会上升到 200 KB/s 并保持这种状态,即使我没有做任何与互联网相关的事情。
CPU使用率有时会发生在我身上。当它发生时,我只需运行一个top
命令来找出哪个进程负责,然后找出kill
它。问题是:我无法知道哪个进程对我的高网络使用率负责。资源监视器和top
命令都只告诉我我的总网络使用情况,它们都没有告诉我处理特定的网络信息。
我在这里发现了有关监控总带宽使用情况的问题,但是,正如我所提到的,这不是我所需要的。我可以使用另一个命令来找出哪个进程失控吗?
该命令iftop
给出的结果与系统监视器报告的信息完全不一致。虽然后者声称网络流量很高,但前者声称只有 1 KB/s。
我已经尝试过杀死所有明显的(Firefox、update-manager、Pidgin 等),但没有运气。到目前为止,重新启动机器是我发现摆脱这个问题的唯一方法。
我在nethogs方面取得了很大的成功。它必须以 root 身份运行,但您可以通过不同的方式对统计信息进行排序(例如 KB/s 或自 nethogs 启动以来监控的总带宽)。
此外,如果您使用无线,则需要将设备传递给它。
使用命令安装它:
sudo apt-get install nethogs
赶紧跑
如果要检查自打开以来消耗的总带宽总和
nethogs
,请执行(查看哪些程序从长远来看消耗更多带宽很有用)用于
iftop
定位计算机上接收最多流量的 TCP 端口。然后用于sudo netstat -tup
定位“拥有”该端口的进程。这就是您正在寻找的过程。
PS:也应该适用于UDP。
您可能想要研究
ntop
- 它应该在进程级别上监视网络活动。您可以ntop
在软件中心或使用sudo apt-get install ntop
有关安装说明,请按照他们的页面http://packages.ntop.org/
另一种选择是
iptraf
. 它不会向您显示进程的 PID,但会告诉您哪个连接使用了多少带宽。这是我喜欢的一个,它告诉你从网络中读取的内容最多,无论如何(似乎对哪个“写入”网络不起作用,所以......你得到了一半)。
迟到的答案,但我有同样的问题。原来是Ubuntuone。通过运行 tcpdump 发现。我在流程识别方面经历了相同的学习曲线。
从我的笔记中:
编者注:此答案指的是tinker 的 blogspot 文章,该文章仅适用于受邀用户。由于此答案具有可观的赞成票,因此很有价值。我在Wayback Machine上找到了一篇文章。并包括在这里。