进程流量监控nethogs
安装与配置nethogs
NetHogs是一个小的开源的流量监控工具。说起流量监控工具其实非常多,如:iftop、vnstat,这些都是统计和监控网卡的流量。而NetHogs的特点在于可以实时的监控每个进程的带宽占用情况,当我们的服务器的带宽大量占用或者其它的一些网络异常,我们可以通过NetHogs来查看是哪个进程或程序异常导致带宽被占用,从而解决带宽问题。
在大多数Linux发行版中都可以通过包管理器来进行Nethogs的安装
Ubuntu/Debian下安装
sudo apt-get install nethogs
ReadHat/CentOS下安装
yum -y install epel-release
yum install -y nethogs
源码编译安装
wget https://github.com/raboof/nethogs/archive/v0.8.7.tar.gz
tar -xvzf v0.8.7.tar.gz
cd nethogs-0.8.7/
sudo apt-get install libpcap-dev libncurses5-dev
make
sudo make install
安装完成之后通过如下命令启动nethogs
sudo nethogs interface
其中,interface指的是要监控的网络接口名称,例如eth0或wlan0等。如果不加任何参数直接执行nethogs命令,则会默认使用系统中的第一个网络接口。
Nethogs的默认界面只显示了进程名和对应的网络流量信息。如果我们想要显示更多的相关信息,可以通过加入不同的参数来进行相关配置。例如,我们可以使用-v参数来显示进程的PID以及占用的内存信息:
sudo nethogs -v interface
使用
nethogs [-h] [-V] [-d] [-v] [-t] [-c] [-p] [-s] [device(s)]
具体使用
直接使用nethogs,默认检测网卡eth0的带宽,并且默认每秒刷新一次
nethogs
使用-d
参数设置5s刷新一次
nethogs -d 5
指定监控的网卡
nethogs eth2
nethogs eth0 eth2
参数说明
-h :显示可用命令的用法
-V :打印版本信息
-d :延迟刷新率(延迟刷新时间),单位是秒,默认为每秒刷新一次
-v :选择视图模式
-p :混合模式下嗅探(不推荐)
-t :跟踪模式
-c :限制刷新的次数 (好像只有version 0.8.1-SNAPSHOT及以后版本才有)
-s :按发送的流量排序 (好像只有version 0.8.1-SNAPSHOT及以后版本才有)
device(s):监听的设备,默认是eth0(网卡设备名)
交互控制
m: 按m键,切换单位或显示占用速度;切换顺序是(KB/sec,KB,B,MB)
r : 按 r 键,按接收流量排序
s : 按 s 键 ,按发送流量排序
q : 按 q 键退出
扩展使用
将nethogs监控进程的信息输出重定向到日志文件中
nethogs -c 1 -t > test.log