NetHogs——Linux下按进程实时统计网络带宽利用率

网上有很多适用于Linux操作系统的开源网络监视工具.比如说,你可以用命令iftop来检查带宽使用情况. netstat用来查看接口统计报告,还有top监控系统当前运行进程.但是如果你想要找一个能够按进程实时统计网络带宽利用率,那么NetHogs就是你所需要的唯一工具.

080844ph0m069f1w4e9mj0

1

NetHogs – 网络带宽监控

什么是NetHogs?

NetHogs 是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率.

来自NetHogs项目网站:

NetHogs是一个小型的’net top’工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组.NetHogs NetHogs不需要依赖载入某个特殊的内核模块. 如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况.这样就很容易找出哪个程序跑飞了然后突然占用你的带宽.

这篇文章为你讲解了如何在Unix/Linux操作系统下如何安装和使用NetHogs按进程监控网络带宽使用率。

在RHEL,CentOS和Fedora下安装NetHogs:

要安装NetHogs,你必须要启用你所用Linux下的EPEL源.然后运行下面的yum命令下载安装NetHogs包.

  1. [ root@tecmint ~]# yum y install nethogs
  2.  
  3. Loaded plugins : fastest mirror , refresh packagekit
  4. Loading mirror speeds from cached hostfile
  5. * base : mirrors . hns . net . in
  6. * epel : mirror . nus . edu . sg
  7. * extras : mirrors . hns . net . in
  8. * rpmfusion free updates : mirrors . ustc . edu . cn
  9. * rpmfusion nonfree updates : mirror . de . leaseweb . net
  10. * updates : mirrors . hns . net . in
  11. Setting up Install Process
  12. Resolving Dependencies
  13. –> Running transaction check
  14. —> Package nethogs . i6860 : 0.8 . 0 1.el6 will be installed
  15. –> Finished Dependency Resolution
  16.  
  17. Dependencies Resolved
  18.  
  19. ===========================================================================================================
  20. Package                  Arch                  Version                      Repository                      Size
  21. ===========================================================================================================
  22. Installing :
  23. nethogs                i686                 0.8 . 0 1.el6                 epel                         28k
  24.  
  25. Transaction Summary
  26. ===========================================================================================================
  27. Install        1 Package ( s )
  28.  
  29. Total download size : 28k
  30. Installed size : 50k
  31. Downloading Packages :
  32. nethogs 0.8 . 0 1.el6.i686.rpm                                                          |    28kB      00 : 00
  33. Running rpm_check_debug
  34. Running Transaction Test
  35. Transaction Test Succeeded
  36. Running Transaction
  37.    Installing : nethogs 0.8 . 0 1.el6.i686                                                            1 / 1
  38.    Verifying    : nethogs 0.8 . 0 1.el6.i686                                                            1 / 1
  39.  
  40. Installed :
  41.   nethogs . i6860 : 0.8 . 0 1.el6
  42.  
  43. Complete !

在Ubuntu, Linux mint和Debian下安装NetHogs:

键入apt-get命令安装NetHogs包

  1. $ sudo apt-get install nethogs

样例输出

  1. tecmint@tecmint :~ $ sudo apt-get install nethogs
  2. [ sudo ] password fortecmint :
  3. Reading package lists Done
  4. Building dependency tree
  5. Reading state information Done
  6. The following NEW packages will be installed :
  7. nethogs
  8. 0 upgraded , 1 newly installed , 0 to remove and 318 not upgraded .
  9. Need to get 27.1kB of archives .
  10. After this operation , 100kB of additional disk space will be used .
  11. Get : 1 http : //in.archive.ubuntu.com/ubuntu/ quantal/universe nethogs i386 0.8.0-1 [27.1 kB]
  12. Fetched 27.1kB in 1s ( 19.8kB / s )
  13. Selecting previously unselected package nethogs .
  14. ( Reading database 216058 files and directories currently installed .)
  15. Unpacking nethogs ( from …/ nethogs_0 . 8.0 1 _i386 . deb )…
  16. Processing triggers forman db
  17. Setting up nethogs ( 0.8 . 0 1 )…

NetHogs用法

在基于RedHat系统下键入如下命令启动NetHogs工具.

要执行NetHogs你必须拥有root权限,即如图所示用sudo命令

  1. $ sudo nethogs

样例预览:

080846zf0ef7bgautccuxx

2

CentOS 6.3 下的NetHogs预览

080847mojvxe9h92jxr79h

3

Ubuntu 12.10 下的NetHogs预览

正如上图所示, send列和received列显示的是按照每个进程的流量统计.总的收发数据带宽在最下方,而且可以用交互命令控制排序,下面将要讨论这些交互命令:

NetHogs 命令行参数

以下就是NetHogs命令行的参数,用’-d’来添加刷新频率参数,device name 用来检测给定的某个或者某些设备的带宽(默认是eth0).例如:设置5秒钟的刷新频率,键入如下命令即可:

如果只用来监视设备(eth0)的网络带宽可以使用如下命令:

  1. $ sudo nethogs eth0

如果要同时监视eth0和eth1接口,使用以下命令即可:

  1. # nethogs eth0 eth1

其他参数和用法

NetHogs 交互控制

以下是NetHogs的一些很有用的交互控制(键盘快捷键)

想要NetHogs命令行工具的完整参数列表请参考NetHogs的手册,使用方法是在终端里输入‘man nethogs‘ 或者 ‘sudo man nethogs‘,更多信息请参考NetHogs项目主页.

发表回复