linux中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
# yum install nethogs
样例输出

[root@tecmint ~]# yum -y install nethogs
 
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: mirrors.hns.net.in
 * epel: mirror.nus.edu.sg
 * extras: mirrors.hns.net.in
 * rpmfusion-free-updates: mirrors.ustc.edu.cn
 * rpmfusion-nonfree-updates: mirror.de.leaseweb.net
 * updates: mirrors.hns.net.in
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package nethogs.i686 0:0.8.0-1.el6 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===========================================================================================================
 Package                Arch                Version                    Repository                    Size
===========================================================================================================
Installing:
 nethogs                i686                0.8.0-1.el6                epel                        28 k
 
Transaction Summary
===========================================================================================================
Install       1 Package(s)
 
Total download size: 28 k
Installed size: 50 k
Downloading Packages:
nethogs-0.8.0-1.el6.i686.rpm                                                        |  28 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : nethogs-0.8.0-1.el6.i686                                                          1/1
  Verifying  : nethogs-0.8.0-1.el6.i686                                                          1/1
 
Installed:
  nethogs.i686 0:0.8.0-1.el6
 
Complete!
在Ubuntu, Linux mint和Debian下安装NetHogs:

键入apt-get命令安装NetHogs包

$ sudo apt-get install nethogs
样例输出

tecmint@tecmint:~$ sudo apt-get install nethogs
 
[sudo] password for tecmint:
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following NEW packages will be installed:
  nethogs
0 upgraded, 1 newly installed, 0 to remove and 318 not upgraded.
Need to get 27.1 kB of archives.
After this operation, 100 kB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/universe nethogs i386 0.8.0-1 [27.1 kB]
Fetched 27.1 kB in 1s (19.8 kB/s) 
Selecting previously unselected package nethogs.
(Reading database ... 216058 files and directories currently installed.)
Unpacking nethogs (from .../nethogs_0.8.0-1_i386.deb) ...
Processing triggers for man-db ...
Setting up nethogs (0.8.0-1) ...
NetHogs用法

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

 

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

 

$ sudo nethogs
样例预览:

 

CentOS 6.3 下的NetHogs预览

 

Ubuntu 12.10 下的NetHogs预览

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

NetHogs 命令行参数

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

 

# nethogs -d 5

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

 

# nethogs eth0

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

 

# nethogs eth0 eth1

$ sudo nethogs eth0 eth1
其他参数和用法

 

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

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

 

-m : Change the units displayed for the bandwidth in units like KB/sec -> KB -> B-> MB.
-r : Sort by magnitude of respectively traffic.
-s : Sort by magnitude of sent traffic.
-q : Hit quit to the shell prompt.
想要NetHogs命令行工具的完整参数列表请参考NetHogs的手册,使用方法是在终端里输入‘man nethogs‘ 或者 ‘sudo man nethogs‘,

时间: 2024-09-29 12:41:41

linux中NetHogs 实时统计网络带宽利用率的相关文章

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

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

linux中shell脚本统计apache日志中页面访问量

需求:在程序中有两个页面,用于某种用途,现需要统计这两个页面在每分钟内的访问量,包括总访问次数,成功次数(状态码200),失败次数.然后写入到mysql中. mysql字段:id(自增长).time(实际统计时间).year.month.day.hour.visit(总访问量).success.fail.target(目标) #!/bin/bash #Desc       : analysis apache log for witch pages with one minutes #instal

在 Linux 中以交互方式实时查看Apache web访问统计

在 Linux 中以交互方式实时查看Apache web访问统计 无论你是在网站托管业务,还是在自己的VPS上运行几个网站,你总会有需要显示访客统计信息,例如前几的访客.访问请求的文件(无论动态或者静态).所用的带宽.客户端的浏览器,和访问的来源网站,等等. GoAccess 是一款用于Apache或者Nginx的命令行日志分析器和交互式查看器.使用这款工具,你不仅可以浏览到之前提及的相关数据,还可以通过分析网站服务器日志来进一步挖掘数据 - 而且这一切都是在一个终端窗口实时输出的.由于今天的大

Linux中进程内存RSS与cgroup内存的RSS统计 - 差异

转载一篇关于进程内存计算和CGROUP内存计算差异的文章http://hustcat.github.io/memory-usage-in-process-and-cgroup/ 在Linux内核,对于进程的内存使用与Cgroup的内存使用统计有一些相同和不同的地方.进程的内存统计一般来说,业务进程使用的内存主要有以下几种情况:(1)用户空间的匿名映射页(Anonymous pages in User Mode address spaces),比如调用malloc分配的内存,以及使用MAP_ANO

pyinotify:在Linux中实时监控文件系统更改

Pyinotify 是一个简单而有用的 Python 模块,它可用于在 Linux 中实时监控文件系统更改. 作为一名系统管理员,你可以用它来监视你感兴趣的目录的更改,如 Web 目录或程序数据存储目录及其他目录. 它依赖于 inotify(在内核 2.6.13 中纳入的 Linux 内核功能),它是一个事件驱动的通知程序,其通知通过三个系统调用从内核空间导出到用户空间. pyinotiy 的目的是绑定这三个系统调用,并在其上提供了一个通用和抽象的方法来操作这些功能. 在本文中,我们将向你展示如

如何在 Linux 中统计一个进程的线程数

编译自:http://ask.xmodulo.com/number-of-threads-process-linux.html作者: Dan Nanni原创:LCTT https://linux.cn/article-6240-1.html译者: strugglingyouth本文地址:https://linux.cn/article-6240-1.html 2015-9-17 10:29    收藏: 5             问题: 我正在运行一个程序,它在运行时会派生出多个线程.我想知道

pyinotify:在 Linux 中实时监控文件系统更改

Pyinotify 是一个简单而有用的 Python 模块,它可用于在 Linux 中实时监控文件系统更改. 作为一名系统管理员,你可以用它来监视你感兴趣的目录的更改,如 Web 目录或程序数据存储目录及其他目录. 建议阅读: fswatch - 监控 Linux 中的文件和目录更改或修改 它依赖于 inotify(在内核 2.6.13 中纳入的 Linux 内核功能),它是一个事件驱动的通知程序,其通知通过三个系统调用从内核空间导出到用户空间. pyinotiy 的目的是绑定这三个系统调用,并

Linux中统计路径下目录的大小脚本

Linux中统计路径下目录的大小脚本如下: 保存成total.sh,然后用total.sh 绝对路径,就能统计路径下目录的大小了 代码: #!/bin/shdu $1 --max-depth=1 | sort -n|awk '{printf "%7.2fM ----> %s\n",$1/http://www.aliyun.com/zixun/aggregation/12560.html">1024,$2}'|sed 's:/.*/\([^/]\{1,\}\)$:\

linux中的文件查找命令

linux中文件查找常用的有两个命令,分别是locate和find. #locate 根据locate数据库查找,不是实时查找,不是精确查找.速度比较快 #find 不根据数据库查找,实时查找,遍历目录查找,精确查找,速度慢. # locate 要查找的关键字 -n 只显示被匹配到的前10行. -c 统计被匹配到的结果总共有多少. locate是根据locate数据库进行查找的,所以速度比较快,如果一个文件刚存入linux系统,然后用locate进行查找,有可能会查找不到,因为locate的数据