详解Linux工具Nethogs按进程监控网络带宽

概述

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

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

简单地说,可以通过nethogs查看linux下进程的流量。

详解Linux工具--nethogs按进程监控网络带宽,值得收藏

安装部署

1、 编译安装nethogs依赖包,centos默认rpm仓没有nethogs的包,所以需要我们手动编译。nethogs编译依赖2个库,在编译前需要安装下

# yum install libpcap libpcap-devel gcc* ncurses* 
详解Linux工具--nethogs按进程监控网络带宽,值得收藏

2、下载nethogs

因为0.8存在bug(creating socket failed while establishing local IP - are you root?),所以这里就用0.81版本了

# wget -c https://github.com/raboof/nethogs/archive/v0.8.1.tar.gz 

详解Linux工具--nethogs按进程监控网络带宽,值得收藏

3、编译安装

# tar -xvf v0.8.1.tar.gz # cd nethogs-0.8.1/ # make && make install 
详解Linux工具--nethogs按进程监控网络带宽,值得收藏

#默认安装好后的路径是/usr/local/sbin/nethogs

4、测试运行:

# nethogs 

详解Linux工具--nethogs按进程监控网络带宽,值得收藏

用法

1、命令行参数

详解Linux工具--nethogs按进程监控网络带宽,值得收藏

2、实例:

实例1:设置5秒钟刷新一次,通过-d来指定刷新频率 # nethogs -d 5 实例2:监视eth0网络带宽 # nethogs eth0 实例3:同时监视eth0和eth1接口 # nethogs eth0 eth1 

详解Linux工具--nethogs按进程监控网络带宽,值得收藏

3、交互命令:

以下是NetHogs的一些交互命令(键盘快捷键)

m : 修改单位

r : 按流量排序

s : 按发送流量排序

q : 退出命令提示符

关于NetHogs命令行工具的完整参数列表,可以参考NetHogs的手册,使用方法是在终端里输入man nethogs。