我有时会因CPU使用率而发生这种情况。这样做时,我只需运行
top
命令来找出哪个进程负责,然后对其进行kill
。问题是:我无法知道哪个进程是造成我网络使用率高的原因。资源监视器和top
命令都只能告诉我我的总网络使用情况,而它们都不能告诉我特定的网络信息。我在这里发现了有关监视总带宽使用情况的问题,但是,由于我提到的,那不是我所需要的。我还有其他命令可以用来找出哪个进程失控吗?
命令
iftop
给出的结果与系统监视器报告的信息完全不同。后者声称网络流量很高,而前者声称只有1 KB / s。我已经尝试杀死所有明显的流量(Firefox,update-manager,Pidgin等),而没有运气。到目前为止,重新启动计算机是我摆脱该问题的唯一方法。
#1 楼
nethogs取得了很多成功。它必须以root用户身份运行,但是您可以使用不同的方式对统计数据进行排序(例如,自从nethogs启动以来监视的KB / s或总带宽)。此外,如果您使用无线网络,则需要传递设备
使用以下命令安装它:
sudo apt-get install nethogs
示例:
sudo nethogs wlan0
#2 楼
使用iftop
在您的计算机上找到流量最多的TCP端口。然后使用
sudo netstat -tup
找到“拥有”该端口的进程。 这就是您要寻找的过程。
PS:也应适用于UDP。
评论
谢谢,该命令似乎可以正常工作,但结果却很奇怪。系统监视器要求的总速度约为180KB / s,而iftop要求的速度仅为每秒1 KB。
–马拉巴尔巴
10年8月16日在20:20
我接受了答案,因为它确实回答了原始问题。但是如果我能弄清楚这里发生了什么,我会很好。
–马拉巴尔巴
10年8月16日在20:25
iptop显示单个界面的统计信息。我不确定系统监视器是仅查看一个接口还是全部查看。如果是这种情况,那么系统监视器将显示流量,而iftop将不会显示流量,这是可以的,因为无论如何您只想查看Internet接口(而不是lo)。我只是在系统上测试了iftop,它显示了我期望的结果。请注意,尽管iftop的平均显示时间分别超过2s,10s,40s。我像'sudo iftop -i eth0 -nPB'一样运行iftop,您是如何运行它的?
– Li Lo
10年8月16日在20:36
我以sudo iftop -B -i eth0的身份运行它,这意味着它只是在查看我的互联网流量,对吗?在我看来,系统监视器也可能正在检查其他接口。具有讽刺意味的是,该问题在10分钟前(数小时后)消失了,所以我暂时无法再次检查iftop。 lo接口代表什么?
–马拉巴尔巴
10年8月16日在20:45
由于iftop屏幕上有很多数字,所以我创建了一个屏幕快照,在其中高亮显示了您感兴趣的数字。将其与系统监视器进行比较。屏幕快照位于imgur.com/2iuiI上。 “ lo”代表本地主机,它是一个接口,本地程序可以通过该接口相互通信。
– Li Lo
10年8月16日在21:09
#3 楼
您可能需要研究ntop
-它应该在进程级别监视网络活动。您可以在软件中心或ntop
中找到sudo apt-get install ntop
。有关安装说明,请参见其页面http://packages.ntop.org/
评论
不适用于ubuntu 17.04(zesty)
– shadi
17年11月25日在8:41
请参阅packages.ntop.org/apt-stable,以获取更高版本的ubuntu的存储库。也是apt-get install ntopng
– dw1
18/12/2在10:58
它有自己的本地服务器,令人困惑...
–rogerdpack
20-4-24的3:20
#4 楼
另一个选择是iptraf
。它不会显示进程的PID,但是会告诉您哪个连接使用多少带宽。#5 楼
答案较晚,但我遇到了同样的问题。原来是Ubuntuone。通过运行tcpdump发现。我在过程识别上经历了相同的学习过程。从我的笔记中:
Ubuntu盒连接信息
今天早上启动我的Ubuntu 10.04桌面,发现几秒钟后分钟,Internet连接正在爬网。我以前在Windows机器上已经看到过这种情况,而且有99%的时间是间谍软件。因此,我需要研究...命令行样式。
tcpdump
。显示Ubuntuone变得疯狂。System> Preferences> Ubuntu One。关闭所有同步。做到了。
所以,我想我想看看所有的网络连接以及它们在做什么。我可以
netstat -cW
(以宽格式连续列出网络连接,以免外来地址被截断)lsof -i |grep -v
'localhost'(列出与任何Internet地址匹配的打开文件, grep删除所有与localhost相关的打开文件-我在这里的想法是,我不想看到本地服务,因为它们很可能不会影响网络利用率。)有一些需要注意的地方:
需要了解有关Ubuntu日志进行故障排除的信息。
需要了解有关tcpdump的更多信息,所以我将从Daniel Miessler的本教程开始。
编者注:该答案是针对tinker的blogspot文章,仅适用于受邀用户。由于此答案具有明显的意义,因此很有价值。我在Wayback Machine上找到了文章的副本。并包括在这里。
#6 楼
我喜欢的一个是,它告诉您从网络中读取的内容最多(无论如何,“向网络写入”似乎不起作用,所以……您得到一半)。$ sudo apt install dstat
then
$ dstat --net --top-io-adv
-net/total- -------most-expensive-i/o-process-------
recv send|process pid read write cpu
0 0 |chrome 1885 19k 17k0.4%
504B 734B|chrome 1923 0 66k0.2%
651k 18k|chrome 1923 597k 593k2.0%
19k 26k|gnome-terminal- 25834 429B 59k0.8%
评论
仔细检查后,假设终端总是80个字符宽并截断命令,这真是令人讨厌。
– Li Lo
2010年8月18日在22:46
已经有一段时间了,但是这个答案确实要简单得多。
–马拉巴尔巴
2010年12月2日于17:05
nethogs很好,但是在计算机上它似乎比iftop使用更多的cpu
–aidan
15年7月29日在6:14
被警告存在使某些版本的nethog无法使用的错误:askubuntu.com/questions/726601/…
–罗马诺
16-3-12在22:20
如果您使用的是无线设备,则无需通过设备。 sudo nethogs工作正常。
–Ads20000
17年4月29日在15:15