NetHogs is an open-source, small ‘net top’ tool. Instead of breaking the traffic down per protocol or per subnet, like most tools do, it groups bandwidth by process. NetHogs does not rely on a special kernel module to be loaded.
If there’s suddenly a lot of network traffic, you can fire up NetHogs and immediately see which PID is causing this. This makes it easy to identify programs that have gone wild and are suddenly taking up your bandwidth.
On RHEL/CentOS, NetHogs is not available in official RHEL/CentOS repositories, so let us add EPEL repository to install NetHogs:
[[email protected] ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
Install NetHags using the following command:
[[email protected] ~]# yum install nethogs -y
[email protected]:~$ sudo apt-get install nethogs
Open up the terminal and enter the following command:
[email protected]:~$ sudo nethogs
By default, NetHogs listens to eth0 interface and displays the bandwidth consumption of the processes. As you see above, the SENT and RECEIVED columns shows the amount of traffic being used around per process. The total bandwidth usage is shown in the TOTAL column.
To cycle between bandwidth usage units, hit “m” (Available units: KB/sec, KB, B, MB). To sort by “sent” traffic or “received” traffic, hit “s” or “r” respectively. You can quit nethogs by hitting “q”.
To listen a particular interface, for example eth1, enter the following command:
[email protected]:~$ sudo nethogs eth1
To monitor bandwidth usage of eth1 interface only, use the following command:
[email protected]:~$ sudo nethogs -device eth1
Also you can set refresh intervals use the parameter -d along with number of seconds.
For example, to set the refresh interval every 5 seconds, enter the following command:
[email protected]:~$ sudo nethogs -d 5
For more information about NetHogs refer the man pages:
[email protected]:~$ man nethogs