Linux使用Nethogs工具查看每个进程的带宽使用情况

时间:2020-01-09 10:41:34  来源:igfitidea点击:

问题:
如何在Linux操作系统下按进程查找和分组网络带宽使用情况?
我如何知道Linux操作系统下哪些程序正在使用网络带宽?
如何查看Linux操作系统上每个PID,命令和用户的带宽使用情况?

说明:
您需要使用nethogs命令。
这是一个小型的网顶工具。
类似于网络流量顶部的工具。

它没有像大多数此类工具那样按协议或每个子网划分流量,而是按进程对带宽进行分组,并且不依赖于要加载的特殊内核模块。
因此,如果突然有大量网络流量,您可以启动NetHogs并立即查看是由哪个PID引起的,如果是某种自旋过程,则将其杀死。

Linux使用Nethogs查看每个进程的带宽使用情况

nethogs工具仅在Linux操作系统下工作。

让我们看看如何在Linux操作系统上安装和使用Nethogs工具来查看每个进程的带宽使用情况。

在Debian或Ubuntu Linux上安装nethogs

执行以下apt-get命令/apt-get命令:

$ sudo apt-get install nethogs

在RHEL或CentOS或Fedora Linux上安装nethog

首先打开EPEL repo并执行以下yum命令以安装nethogs软件包:

# yum install nethogs

如果您使用的是Fedora Linux,请执行:

$ sudo dnf install nethogs

在Arch Linux上安装nethogs

$ sudo pacman -S nethogs

在OpenSuse Linux上安装nethogs

# zypper install nethogs

如何使用nethogs命令?

语法为:

nethogs
nethogs eth1
nethogs [option] eth0 eth1
nethogs [option] eth0 eth1 ppp0
sudo /usr/sbin/nethogs eth0

键盘快捷键

运行nethogs时,使用以下交互式控件:

  • m:在显示模式之间循环(kb/s,kb,b,mb)
  • r:按收到的顺序排序。
  • s:按发送排序。
  • q:退出并返回到shell提示符。

其他选项

-d     delay for refresh rate.
       -h     display available commands usage.
       -p     sniff in promiscious mode (not recommended).
       -t     tracemode.
       -V     prints Version info.

处理creating socket failed报错

如果出现错误,内容如下:

creating socket failed while establishing local IP are you root?
建立本地IP时创建套接字失败您是root吗?

确保您使用的是最新版本的nethogs并以root用户身份运行:

$ sudo nethogs eth1