I think I'm being the victim of a bug here. Sometimes while I'm working (I still don't know why), my network traffic goes up to 200 KB/s and stays that way, even tough I'm not doing anything internet-related.
This sometimes happens to me with the CPU usage. When it does, I just run a top
command to find out which process is responsible and then kill
it. Problem is: I have no way of knowing which process is responsible for my high network usage. Both the resource monitor and the top
command only tell me my total network usage, neither of them tells me process specific network info.
I've found questions here about monitoring total bandwidth usage, but, as I mentioned, that's not what I need. Is there another command I can use to find out which process is getting out of hand?
The command iftop
gives results that disagree entirely with the information reported by System Monitor. While the latter claims there's high network traffic, the former claims there's barely 1 KB/s.
I've already tried killing all the obvious ones (Firefox, update-manager, Pidgin, etc) with no luck. So far, restarting the machine is the only way I found of getting rid of the issue.
I've had a lot of success with nethogs. It has to run as root but there are different ways you can sort the statistics (like KB/s or total bandwidth monitored since nethogs started).
Also, if you use wireless you need to pass the device to it.
Install it with command:
sudo apt-get install nethogs
Just run
If you want to check the total cumulative sum of bandwidth consumed since you open
nethogs
, do (it's useful to see which programs consume more bandwidth over the long run)Use
iftop
to locate the TCP port on your machine that is receiving the most traffic. Then usesudo netstat -tup
to locate the process "owning" that port.That's the process you're looking for.
PS: Should work for UDP too.
You might want to look into
ntop
- which should monitor network activity on a process level. You can findntop
in the Software Center or withsudo apt-get install ntop
For installation instruction, follow their page http://packages.ntop.org/
Another alternative is
iptraf
. It won't show you the PID of the process, but will tell you which connection uses how much bandwidth.Here's one I like, it tells you what's reading from the network the most, anyway (doesn't seem to work for which one is "writing to" the network, so...you get half).
Late answer, but I had the same problem. Turned out to be Ubuntuone. Found that by running tcpdump. I went through the same learning curve on process identification.
From my notes:
Editor's note: This answer was referring to tinker's blogspot article which is meant for invited users only. Since this answer has appreciable upvotes, so it is valuable. I found a copy of article on Wayback Machine. And included that here.